Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > java - рассылка сообщений


Автор: Berliner 30.5.2005, 11:38
Здраствуйте! Хочу написать програмку которая рассылает почту- прикрепленные файл на определенный адрес(например me@mail.ru) если можно расскажите как это организовать(алгоритм). Какие классы использовать и какие методы. Это поможет мне выучить(попытаться) Java на конкретном примере.

Автор: maximb 30.5.2005, 11:44
http://java.sun.com/developer/onlineTraining/JavaMail/contents.html

Автор: Berliner 30.5.2005, 15:04
Спасиб Но у меня вопрос немогу подключить javax.mail.* Использую NetBeans 4.0 ; Java 1.5.0 как подключить классы?

Автор: maximb 30.5.2005, 15:10
А в чем заключается проблема ?
NetBeans не хочет этого делать или при подключении и/или компиляции
появляется ошибка ?
Если ошибка то какая ?

Автор: batigoal 30.5.2005, 15:11
javax.mail - это пакет из J2EE, а не J2SE. Так что придется качнуть J2EE 1.4.

Автор: Berliner 30.5.2005, 15:12
Или в чем пробллем почему немогу подключить javax.mail?

---If you use J2EE, there is nothing special you have to do to use the basic JavaMail API; it comes with the J2EE classes. Just make sure the j2ee.jar file is in your CLASSPATH and you're all set.

Может быть в этом?
P.S. Спасибо за ссылку
Добавлено @ 15:14
Спасибо дайте ссылку плиз и как его провильно заинсталить?

Автор: batigoal 30.5.2005, 15:29
http://java.sun.com/j2ee/1.4/download.html#sdk

Автор: Domestic Cat 30.5.2005, 18:48
Цитата(Lamer @ 30.5.2005, 06:11)
javax.mail - это пакет из J2EE, а не J2SE. Так что придется качнуть J2EE 1.4.


А не многовато тянуть ради одного мейла??
http://java.sun.com/products/javamail/

Автор: batigoal 30.5.2005, 18:54
Не знал. Действительно, так только 2.25 Мб.

Автор: tux 31.5.2005, 06:26
Можно посмотреть еще http://jakarta.apache.org/commons/email/ - очень простая библиотека, примеры там же. Скачать можно здесь - http://www.ibiblio.org/maven/commons-email/jars/commons-email-SNAPSHOT.jar.

Автор: Berliner 31.5.2005, 09:37
Ок Спасиб скажите а если у меня IDE NEtBeans - J2SE а не J2EE ?
В чем очновные отличия EE Entrprise Edition? (более полная версия?) а J2SE - стандартная версия, Правильно? и втрое скачал я библиотеку javax.mail -как ее правильно установить подскажите пожалуста
Добавлено @ 09:42
Ок Спасиб скажите а если у меня IDE NEtBeans - J2SE а не J2EE ?
В чем очновные отличия EE Entrprise Edition? (более полная версия?) а J2SE - стандартная версия, Правильно? и втрое скачал я библиотеку javax.mail -как ее правильно установить подскажите пожалуста. Библиотека в архиве 1,7 МБ

Автор: tux 31.5.2005, 09:59
Неправильно smile Тебе сюда - http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=main_panel&article=122. Вообще говоря от IDE версия Java не зависит, а для того, чтобы использовать библиотеку нужно ее саму (файлик javamail*.jar) положить в Classpath. И все будет о'кейно.

Автор: Berliner 31.5.2005, 11:54
-----а для того, чтобы использовать библиотеку нужно ее саму (файлик javamail*.jar) положить в Classpath. И все будет о'кейно.

Спасиб
Поподробнее пожалуста куда это.

1. Я скачал без архива jar - в открытом виде!
2. Где находиться Classpath? Извините- но я новичок в Java

Автор: tux 31.5.2005, 12:41
Наверное все-таки стоит почитать сперва про Java в FAQ на форуме и в книгах, там все достаточно подробно расписано. Все зависит от того как ты компилируешь и запускаешь - в командной строке нужно установить переменную CLASSPATH, в Netbeans задать параметры проекта, причем в 4.1 это еще и от типа созданного проекта зависит. Так что учиться, учиться и учиться smile Читать то есть.

Автор: batigoal 31.5.2005, 12:52
Цитата(Berliner @ 31.5.2005, 12:54)
Я скачал без архива jar - в открытом виде!

jar - это и есть архив.

Цитата(Berliner @ 31.5.2005, 12:54)
Где находиться Classpath?

До classpath'а добираться так (в винде):

Мой компьютер --> Свойства --> Дополнительно --> Переменные среды
My computer--> Properties--> Advanced--> Environment Variables

В списке "Системные переменные" ("System Variables") должна быть переменная CLASSPATH. В нее надо добавить С:\lib\javamail.jar; или где там он у тебя лежит.


Модераторам - предлагаю добавить фразу об изменении сlasspath в статью ФАКа ("Как начать работать с Java?"). А то этот вопрос постоянно возникает.

Автор: Zandr 31.5.2005, 13:31
Lamer George, так и оформил бы статейку smile

Автор: batigoal 31.5.2005, 13:47
Так она уже есть smile

Автор: Berliner 8.6.2005, 13:49
Скажи а где посомтреть информацию про то как подключить класс. Кроие рамблер.ру я.ру гоогле.ру

и вот посмотрея я в фак а там нет ответа на вопрос

и еще если я пропишу в винде как говорил Лемер Жорж - в нет бинс я тоже понимаю надо настройки менять тоже и где вот нашел где касс прописыват в нет бинс не знаю . Подскажите плиз

Автор: batigoal 8.6.2005, 14:06
Что значит - "подключить класс"?

Существует зарезервированное слово import. Если ты напишешь в самом начале файла класса импорты, то потом можешь обращаться к классу без использования квалифицированного (полного) имени.

Пример 1.
Код

import java.util.ArrayList; 
public class Test
{
  ArrayList al = new ArrayList();
}


Пример 2.
Код

public class Test
{
  java.util.ArrayList al = new java.util.ArrayList();
}


Они абсолютно равнозначны.


При этом файлы использованных классов должны быть доступны компилятору. То есть их каталоги должны быть прописаны в classpath (при работе из текстового редактора) или быть включены в свойства проекта (при работе в визуальной среде).

Автор: Berliner 8.6.2005, 15:04

Извините я неправильно выразился что такое импорт я знаю

Я вот по какому поводу- как подключить библиотеку mail?

а для того, чтобы использовать библиотеку нужно ее саму (файлик javamail*.jar) положить в Classpath. И все будет о'кейно.
впредыдущем топике нужно читать не класс а библиотека. Спасиб.

Автор: chief39 8.6.2005, 15:04
Погодите-ка, если человеку просто надо рассылать почту,
то почему бы не попробовать
Код

import sun.net.smtp.SmtpClient;


вместо качания javax.mail

и дальше по тексту... smile

вот только с аттачами не знаю как.
не юзал его в своих корыстных целях. smile
Загляни-ка туда, может подойдёт...

а вот здесь, кстати, и примерчик изволит быть smile :

http://www.krasu.ru/server/docs/java/scjp/a_01.htm#mail_Q1

Автор: Berliner 8.6.2005, 15:12
Скажи а где посомтреть информацию про то как подключить БИБЛИОТЕКУ.

и вот посмотрея я в фак а там нет ответа на вопрос

ЛАМЕР дЖОРЖ ПИСАЛ:
До classpath'а добираться так (в винде):

Мой компьютер --> Свойства --> Дополнительно --> Переменные среды
My computer--> Properties--> Advanced--> Environment Variables

В списке "Системные переменные" ("System Variables") должна быть переменная CLASSPATH. В нее надо добавить С:\lib\javamail.jar; или где там он у тебя лежит.

а В НЕТ БИНС НАДО НАСТРОЙКИ ГДЕ-ТО МЕНЯТЬ(ЧТО ТАМ ПРОПИСЫВАТЬ ЧТОБЫ БИБЛИОТЕКА ПОДКЛЮЧИЛАСЬ)? ПИСАТЬ ЭТУ ПРОГУ ДУМАЮ Ч ПОМОЩЬЮ НЕТ БИНС.

спасиб smile




Автор: chief39 8.6.2005, 15:46
Цитата(Berliner @ 8.6.2005, 15:12)
а В НЕТ БИНС НАДО НАСТРОЙКИ ГДЕ-ТО МЕНЯТЬ(ЧТО ТАМ ПРОПИСЫВАТЬ ЧТОБЫ БИБЛИОТЕКА ПОДКЛЮЧИЛАСЬ)? ПИСАТЬ ЭТУ ПРОГУ ДУМАЮ Ч ПОМОЩЬЮ НЕТ БИНС.


NET BEANS не видел, но по логике вещей, в ней тоже есть такая штука как проект,
в рамках которого ты, собственно, всё и пишешь.
У него в любом случае есть настройки.
А в них что-то вроде PATH или "переменные среды"
И там должен быть список всего что ты(и сама среда) подключил.
Вот там добавь ещё и то что хотел добавить(путь туда пропиши к этому джарику)
когда будешь запускать из IDE оно само добавит в строку запуска после -cp список всего подключённого, пользуясь настройками проекта.
Поищи в NET BEANS, не думаю что эти настройки там очень замаскированы smile

Автор: Berliner 9.6.2005, 11:20
Не могу разобраться где там что прописывать. Никто не знает как у этим с нет бинс?

Автор: Berliner 9.6.2005, 15:54
Где прописывается classpath в NetBeans? Знатоки, помогайте плиз! уже все выкачал и вроде понаходил и прочитал на английском с сановского сайта как инставлить библиотеку а где classpath ненайду smile

Автор: batigoal 9.6.2005, 15:59
Тебе AntonSaburov в другой теме уже ответил.

Автор: Berliner 10.6.2005, 11:24
Спасибо, уже доставил буду пробывать что-то написать для рассылки почты
Извините если надоел(но все таки поставил)

Автор: Berliner 12.6.2005, 15:36

вот пробую и вылазит ошибки при компиляции - не подскажите почему?
package Me;

/**
*
* @author administrator
*/
public class Main {

/** Creates a new instance of Main */
public Main() {



/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props,null);
MimeMessage message = new MimeMessage (session);
message.SetContent("Hello","text/Plain");
message.SetSubject("Test");




// TODO code application logic here
}

}

Автор: batigoal 12.6.2005, 16:05
Какие ошибки-то?
Видимо, "Cannot resolve symbol"?
Добавлено @ 16:06
Кстати, у тебя скобка после public Main() { не закрыта.

Автор: Berliner 12.6.2005, 16:48
Не найден ни один главный класс

Автор: batigoal 12.6.2005, 21:40
Наверное, его нужно выставить в свойствах проекта.

Автор: Guest 13.6.2005, 13:34
ok попробую

Автор: Гость_Berliner 13.6.2005, 15:56

Ттакое сообщение при компиляции
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\ADMINISTRATOR.SUMY.000\JavaApplication7\build\classes
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\JavaApplication7\src\Me\Main.java:23: illegal start of expression
public static void main(String[] args) {
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\JavaApplication7\src\Me\Main.java:31: ';' expected
}
2 errors
СБОРКА ЗАВЕРШЕНА НЕУДАЧНО (общее время: 0 секунд)

а при исполнить не найден ни один главный класс. Что может быть

Подскажите пожалуста

Автор: batigoal 13.6.2005, 16:28
Как я уже написал -
Цитата(Lamer @ 12.6.2005, 17:05)
скобка после public Main() { не закрыта

Исправил?

Автор: Berliner 13.6.2005, 18:22
А зачем у меня 3 открывающих и 3 закрывающих скобки парное число. А подскажите в коде где я должен закрыть а то чето я не дойду

Автор: batigoal 13.6.2005, 21:25
Я вижу толшько две закрывающих.

Код

package Me;

public class Main {

public Main() { }

public static void main(String[] args) {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props,null);
MimeMessage message = new MimeMessage (session);
message.SetContent("Hello","text/Plain");
message.SetSubject("Test");
}
}

Автор: Guest 14.6.2005, 10:50
Спасиб
package Me;


public class Main {

public Main() {}


public static void main(String[] args) {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props,null);
MimeMessage message = new MimeMessage (session);
message.SetContent("Hello","text/Plain");
message.SetSubject("Test");

}

}


Но при компиляции выдает такое:

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\ADMINISTRATOR.SUMY.000\JavaApplication7\build\classes
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\JavaApplication7\src\Me\Main.java:24: cannot find symbol
symbol : class Properties
location: class Me.Main
Properties props = new Properties();
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\JavaApplication7\src\Me\Main.java:24: cannot find symbol
symbol : class Properties
location: class Me.Main
Properties props = new Properties();
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\JavaApplication7\src\Me\Main.java:25: cannot find symbol
symbol : class Session
location: class Me.Main
Session session = Session.getDefaultInstance(props,null);
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\JavaApplication7\src\Me\Main.java:25: cannot find symbol
symbol : variable Session
location: class Me.Main
Session session = Session.getDefaultInstance(props,null);
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\JavaApplication7\src\Me\Main.java:26: cannot find symbol
symbol : class MimeMessage
location: class Me.Main
MimeMessage message = new MimeMessage (session);
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\JavaApplication7\src\Me\Main.java:26: cannot find symbol
symbol : class MimeMessage
location: class Me.Main
MimeMessage message = new MimeMessage (session);
6 errors
СБОРКА ЗАВЕРШЕНА НЕУДАЧНО (общее время: 3 секунды)



Автор: batigoal 14.6.2005, 21:18
Не поставлены импорты для классов Properties, Session и MimeMessage.

Автор: Berliner 4.7.2005, 12:59
package Me;
import javax.mail.*;

public class Main {


public Main() {}



public static void main(String[] args) {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props,null);
MimeMessage message = new MimeMessage (session);
message.SetContent("Hello","text/Plain");
message.SetSubject("Test");
Adress eadress = new InternetAdress ("svvua@ukr.net");




}

}

Properties props = new Properties();
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\Me\src\me\Main.java:14: cannot find symbol
symbol : class Properties
location: class Me.Main
Properties props = new Properties();
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\Me\src\me\Main.java:16: cannot find symbol
symbol : class MimeMessage
location: class Me.Main
MimeMessage message = new MimeMessage (session);
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\Me\src\me\Main.java:16: cannot find symbol
symbol : class MimeMessage
location: class Me.Main
MimeMessage message = new MimeMessage (session);
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\Me\src\me\Main.java:19: cannot find symbol
symbol : class Adress
location: class Me.Main
Adress eadress = new InternetAdress ("svvua@ukr.net");
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\Me\src\me\Main.java:19: cannot find symbol
symbol : class InternetAdress
location: class Me.Main
Adress eadress = new InternetAdress ("svvua@ukr.net");
6 errors
СБОРКА ЗАВЕРШЕНА НЕУДАЧНО (общее время: 6 секунд)



Добавлено @ 13:00
Обидно 5 строк и сколько ошибок! Помогите плиз кто знает - вроде и импорт поставил.

Автор: igon 4.7.2005, 14:38
Код

package Berliner;

import java.util.*; // Этого у тебя не было 

import javax.mail.*;
import javax.mail.internet.*; // Этого у тебя не было 


// либо так
//import java.util.Properties;
//import javax.mail.Address;
//import javax.mail.MessagingException;
//import javax.mail.Session;
//import javax.mail.internet.AddressException;
//import javax.mail.internet.InternetAddress;
//import javax.mail.internet.MimeMessage;

public class Main 
  {

  public Main() {}

  public static void main(String[] args) 
    {
      Properties props = new Properties();
      Session session = Session.getDefaultInstance(props,null);
      MimeMessage message = new MimeMessage (session);
      try 
        {
          message.setContent("Hello","text/Plain");
          message.setSubject("Test");
        }
        catch (MessagingException e)
          {
          }
      try  
        {
          Address eadress = new InternetAddress ("svvua@ukr.net");  // Вместо Address у тебя Adress 
        }
        catch (AddressException e)
          {
          }

    } 
  }

Компилится без ошибок, но в "кишочки" не лез, даже не запускал (мало ли... smile)

Автор: Berliner 5.7.2005, 11:12
package Me;
import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;

public class Main {


public Main() {}



public static void main(String[] args) {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props,null);
MimeMessage message = new MimeMessage (session);
try
{
message.SetContent("Hello","text/Plain");
message.SetSubject("Test");
}
catch(MessagingException e)
{
}


try
{
Address eadress = new InternetAddress ("svvua@ukr.net");
}
catch(AddressException e)
{
}
}
}

Вот мой текст выдает 2 ошибки при сборке

symbol : method SetContent(java.lang.String,java.lang.String)
location: class javax.mail.internet.MimeMessage
message.SetContent("Hello","text/Plain");
C:\Documents and Settings\ADMINISTRATOR.SUMY.000\Me\src\me\Main.java:22: cannot find symbol
symbol : method SetSubject(java.lang.String)
location: class javax.mail.internet.MimeMessage
message.SetSubject("Test");
2 errors
и еще есть один вопрос что такое за catch(AddressException e)
хочу узнать что за параметр e в эксепшине.

Подскажите где ошибка плиз

Автор: Andyb 5.7.2005, 11:37
скорее всего javax.mail в ClassPath'е не может найти

Автор: igon 5.7.2005, 16:12
Java чувствительна к регистру: Set и set - разные вещи!!!
У меня
Код


          message.setContent("Hello","text/Plain");
          message.setSubject("Test");
работает
У тебя
Код

message.SetContent("Hello","text/Plain");
message.SetSubject("Test");

не работает
Ты уж будь, please, повнимательней smile

Цитата
что такое за catch(AddressException e)

Поищи в Google javax.mail.internet.AddressException;

Автор: Berliner 12.7.2005, 18:06
Спасиб вроде без ошибок
Но овсталось несколько вопросов
1. Если я пытаюсь компилить запустить программу то вылазить следующий ексепшин. xception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
at Me.Main.main(Main.java:19)
Java Result: 1

2.Может что то с транспортом я не то написал.

И последнее может кто нить подскажет как отослать эттач а то я не могу разобраться в Сановском тюториале smile с обычным приатаченым файлом. Спасибо за понимание.


Вот код:

Код

package Me;
import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;


public class Main {
    
   
    public Main() {}
        
        

    public static void main(String[] args) {
    Properties props = new Properties();
    Session session = Session.getDefaultInstance(props,null);
    MimeMessage message = new MimeMessage (session);
   try
   {
    message.setContent("Hello","text/Plain");
    message.setSubject("Test");
   }
   catch(MessagingException e)
    {
    }
   
    
    try
    {        
    Address eadress = new InternetAddress ("svvua@ukr.net"); 
    }
   catch(AddressException e)
   {
   }
    try 
       {
        Transport.send(message);
        
       }
    catch(MessagingException e)
      {
        
      }
                                                  }
    
        
  }

Автор: Berliner 14.7.2005, 16:45
Никто не знает ничего smile
Хочу написать программу которая файлі рассілает помогите плиз smile smile smile smile
Добавлено @ 16:46
Спасиб !
если кто может - помогите smile smile

Автор: igon 15.7.2005, 00:29
Код

package Berliner;

import java.util.*;

import javax.mail.*;
import javax.mail.internet.*;

public class Main 
  {

  public Main() {}

  public static void main(String[] args) 
    {
      Properties props = new Properties();
      Session session = Session.getDefaultInstance(props,null);
      MimeMessage message = new MimeMessage (session);
      Address[] eadress = new Address[1];
      try
        {
          message.setContent("Hello","text/Plain");
          message.setSubject("Test");
        }
        catch (MessagingException e)
          {
          }
      try
        {
          eadress[0] = new InternetAddress ("svvua@ukr.net"); 
        }
        catch (AddressException e)
          {
          }
try 
{
Transport.send(message,eadress); // требует второй аргумент - массив адресов

}
catch(MessagingException e)
{
e.printStackTrace();
}

    } 
  }

В таком виде дает ошибку
Код

javax.mail.SendFailedException: Sending failed;
  nested exception is: 
    javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25
    at javax.mail.Transport.send0(Transport.java:219)
    at javax.mail.Transport.send(Transport.java:99)
    at Berliner.Main.main(Main.java:36)
К сожалению, доки на Transport под рукой нет.
А что за Сановский тюториал? У меня он есть (The JavaTM Tutorial
), но там про mail ни звука.
ИМХО, тебе лучше найти подходящий пример и уже его подстраивать под себя, чем пытаться писать все с нуля.

Автор: batigoal 15.7.2005, 09:57
Цитата(igon @ 15.7.2005, 01:29)
А что за Сановский тюториал? У меня он есть (The JavaTM Tutorial
), но там про mail ни звука.

Просто он не входит в поставку JDK. Туториал есть тут: http://java.sun.com/developer/onlineTraining/JavaMail/contents.html

Автор: Berliner 15.7.2005, 17:05
вот вот нужен пример чтобы слал куда нить письмо. Вот и я с транспортом
нимогк разобраться. Знатоки помогите. А сановский учебник взял там откуда качал мэйл пекедж. смотрите выше в топике.

помогите с транпортом разобраться

Автор: igon 15.7.2005, 21:45
Код

package Berliner;

import java.util.*;

import javax.mail.*;
import javax.mail.internet.*;

public class Main 
  {
    static Transport transport;

    public Main() {}

    public static void main(String[] args) 
      {
        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.host", "smtp.mail.ru");
        props.setProperty("mail.user", "nkruglenko");
        props.setProperty("mail.password", " :):):):):)");
        Session mailSession = Session.getDefaultInstance(props, null);
        try
          {
            transport = mailSession.getTransport();
          }
          catch (NoSuchProviderException e)
            {
              e.printStackTrace();          
            }
        MimeMessage message = new MimeMessage(mailSession);
        try
          {
            message.setContent("This is a test. igon", "text/plain");
            message.setFrom(new InternetAddress("nkruglenko@mail.ru"));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress("svvua@ukr.net"));
            transport.connect();
            transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
            transport.close();
          }
          catch (MessagingException e)
            {
              e.printStackTrace();
            }
      } 
  }


Письмо на svvua@ukr.net получил? smile

Автор: Zandr 16.7.2005, 10:27
А вот использование Java activation framework при работе с Java mail еще никто не отменял. Его (activation.jar, который прикреплен к моему посту) нужно тоже положить на CLASSPATH, если этого еще не сделано.

Автор: Berliner 17.7.2005, 22:49
Спасиб буду пробывать

Автор: Berliner 18.7.2005, 12:18
Спасиб получил!!!! буду с кодом разбараться что есть что потом может еще че то спрошу

Автор: Guest 23.8.2005, 17:20
smile

javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type text/plain
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:566)
at javaapplication1.Main.main(Main.java:50)

из вышеприведенного кода... smile что делать то?

Автор: Zandr 24.8.2005, 05:52
Запусти-ка вот это:
Код
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public class Main {
    public static void main(String[] args) throws Exception {
        Properties props = new Properties();
        props.put("mail.smtp.host", "<your SMTP host>");

        Message message = new MimeMessage(Session.getInstance(props));
        Address address = new InternetAddress("<your e-mail address>");

        message.setSubject("Test e-mail message");
        message.setText("Hello, Vingrad citizen!");
        message.setFrom(address);
        message.setRecipient(Message.RecipientType.TO, address);

        Transport.send(message);
    }
}

На CLASSPATH должны быть mail.jar и activation.jar. О результатах доложить.

Автор: Maksym 24.8.2005, 10:29
Zandr
Спасибо за ответ smile
Отработал молча без исключений.
Но ничего никуда не пришло.
Что делать? smile

Автор: Zandr 24.8.2005, 11:02
Интересно smile
Варианты:
1) Указан неправильный почтовый адрес
2) Указан неправильный SMTP хост
3) Указанный адрес не зарегистрирован на хосте (и это не smtp-proxy хост)
4) На хосте стоит "молчаливый" спам-фильтр, который принял письмо за спам
5) Все-таки пришло, пока ты писал ответ smile
6) Может еще что...

Можно попробовать добавить свойство "mail.transport.protocol" = "smtp", но сомневаюсь что это поможет...

Автор: Maksym 24.8.2005, 15:31
Zandr
1) почтовый адрес, которым я пользуюсь
2) smtp.mail.ru, добавил строки
props.setProperty("mail.user", "login");
props.setProperty("mail.password", "password");
3) зарегистрирован (пользуюсь)
4) очень может быть smile))
5) не-а smile
6) буду думать..

Можно ли как-то откуда-то получить информацию о том как прошла отправка? smtp-сервер ведь возвращает инфу...

Автор: Maksym 24.8.2005, 16:34
Zandr
Прошу прощения, ошибся.
Исключение, которое я описал выше остается.
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type text/plain; charset=us-ascii
Для проверки выкачал и установил activation.jar размещенный выше. Ничего не изменилось:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type text/plain; charset=us-ascii

Автор: Maksym 24.8.2005, 17:03
Исключение не возникает если использовать:
message.setContent("Hello, Vingrad citizen!", "text");
но письмо при этом не приходит smile

Автор: Zandr 25.8.2005, 06:52
Отправил тебе по почте либы, исходник и build файл. Распаковывай, смотри, собирай, запускай.

Автор: Zandr 25.8.2005, 07:50
С mail.ru не запустится... Там нужна аутентификация при отправке. Выставление соответствующих свойств ничего не даёт, позже буду разгребать.

Автор: Maksym 25.8.2005, 14:59
Zandr
Все заработало. smile
После долгого сравнения работающего и неработающего вариантов разница обнаружилась только в том, что Mail.jar, с которым я морочился был
Implementation-Version: 1.3.2ea (скачал с оф.сайта), а тот с которым все заработало Implementation-Version: 1.3.2 (его прислал ты)
Большое спасибо smile smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)