Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaMail / 15 сообщений из 15, страница 1 из 1
10.01.2006, 13:55:19
    #33474159
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
Помогите раздуплиться.
Вот раскопал пример в нем кусок кода для установки свойств сервера
Код: plaintext
1.
2.
3.
4.
5.
Properties props =  new  Properties();
       1 )  props.setProperty("mail.transport.protocol", "smtp");
       2 )  props.setProperty("mail.host", "smtp.mymailserver.com");
       3 )  props.setProperty("mail.user", "myuser");
       4 )  props.setProperty("mail.password", "mypwd");
Не могу вдуплить чем отличается 1) от 2) и что устанавливается в 3) и 4)
Пишу заместь
Код: plaintext
1.
props.setProperty("mail.transport.protocol", "mail");
выдает ошибку:
Код: plaintext
1.
2.
3.
4.
5.
6.
javax.mail.NoSuchProviderException: Invalid protocol:  null 
	at javax.mail.Session.getProvider(Session.java: 412 )
	at javax.mail.Session.getTransport(Session.java: 631 )
	at javax.mail.Session.getTransport(Session.java: 612 )
	at javax.mail.Session.getTransport(Session.java: 598 )
	at mail_java.SimpleMail.main(SimpleMail.java: 19 )
Mail-это smtp моего почтового сервера.
Вообще куда что вставлять
...
Рейтинг: 0 / 0
10.01.2006, 14:18:54
    #33474263
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
1 - тип сервера, видимо (может быть например и imap), 2 - его адрес

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
10.01.2006, 14:46:21
    #33474357
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
только что у админа своего спросил настройки, все прописал, но работать не хочет:
props.put("mail.smtp.host", "mail");
props.setProperty("mail.host", "mail.mtu.gov.ua");
та же ошибка вылетает
Telnetom заходит, а так не хочет, че ему надо?
...
Рейтинг: 0 / 0
10.01.2006, 14:54:43
    #33474391
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
В JavaMail есть файл demo/registry.java, и з которого вроде как следует, что в нем самом реализованы два транспортных протокола:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// set smtp and imap to be our default 
// transport and store protocols, respectively
props.put("mail.transport.protocol", "smtp");
props.put("mail.store.protocol", "imap");

// 
props.put("mail.smtp.class", "com.sun.mail.smtp.SMTPTransport");
props.put("mail.imap.class", "com.sun.mail.imap.IMAPStore");

Я это свойство вообще пока не использую. Убери его и покажи весь код класса. Если твой SMTP-сервер требует аутенификации, то еще следует выставлять:
Код: plaintext
props.put("mail.smtp.auth", "true");
...
Рейтинг: 0 / 0
10.01.2006, 15:00:35
    #33474409
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
Denis PopovВ JavaMail есть файл demo/registry.java, и з которого вроде как следует, что в нем самом реализованы два транспортных протокола:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// set smtp and imap to be our default 
// transport and store protocols, respectively
props.put("mail.transport.protocol", "smtp");
props.put("mail.store.protocol", "imap");

// 
props.put("mail.smtp.class", "com.sun.mail.smtp.SMTPTransport");
props.put("mail.imap.class", "com.sun.mail.imap.IMAPStore");

Я это свойство вообще пока не использую. Убери его и покажи весь код класса. Если твой SMTP-сервер требует аутенификации, то еще следует выставлять:
Код: plaintext
props.put("mail.smtp.auth", "true");

Вот класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 class  SimpleMail {
     public   static   void  main(String[] args)  throws  Exception{
        System.out.println("Sending mail...");
        Properties props =  new  Properties();
        props.put("mail.transport.protocol", "smtp");
        props.setProperty("mail.host", "mail.mtu.gov.ua");

        Session mailSession = Session.getDefaultInstance(props,  null );
        mailSession.setDebug(true);
        Transport transport = mailSession.getTransport();

        MimeMessage message =  new  MimeMessage(mailSession);
        message.setSubject("HTML  mail with images");
        message.setFrom( new  InternetAddress("admin@mail.ru"));
        message.setContent("<h1>лыовалыовал</h1>", "text/html");
        message.addRecipient(Message.RecipientType.TO,
              new  InternetAddress("xxx@mail.ru"));

        transport.connect();
        transport.sendMessage(message,
            message.getRecipients(Message.RecipientType.TO));
        transport.close();
        }
   }
И так и так не хочет.Аутентификация не требуется.IMAP -а тоже нет
...
Рейтинг: 0 / 0
10.01.2006, 15:03:22
    #33474416
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
кстати, когда ставлю:
Код: plaintext
1.
 props.put("mail.transport.protocol", "smtp");
           props.setProperty("mail.host", "mail.mtu.gov.ua");
вылетает уже другая ошибка:
Код: plaintext
1.
2.
3.
java.lang.NoClassDefFoundError: javax/activation/DataSource
	at mail_java.SimpleMail.main(SimpleMail.java: 27 )
Exception in thread "main" 
Валится на строчке:
Код: plaintext
1.
MimeMessage message =  new  MimeMessage(mailSession);
...
Рейтинг: 0 / 0
10.01.2006, 15:20:17
    #33474485
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
 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  SimpleMail {

   private   static   final  String HOST = "mail.mtu.gov.ua";

   private   static   final  String FROM = "admin@mail.ru";

   private   static   final  String TO = "xxx@mail.ru";

   public   static   void  main(String[] args)
     throws  Exception {
    Properties props =  new  Properties();
    props.setProperty("mail.host", HOST);

    Session session = Session.getDefaultInstance(props,  null );
    session.setDebug(true);

    MimeMessage message =  new  MimeMessage(session);
    message.setSubject("HTML mail with images");
    message.setFrom( new  InternetAddress(FROM));
    message.setContent("<h1>xxx</h1>", "text/html");
    message.addRecipient(Message.RecipientType.TO,  new  InternetAddress(TO));
    Transport.send(message);
  }
}
И борись с кодировкой;)
...
Рейтинг: 0 / 0
10.01.2006, 15:27:48
    #33474509
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
Спасибо Денис, только вот все-равно исключение вылетает, скопировал код в точности как ты написал, запускаю,получаю:
Код: plaintext
1.
2.
3.
java.lang.NoClassDefFoundError: javax/activation/DataSource
	at mail_java.SimpleMail.main(SimpleMail.java: 24 )
Exception in thread "main" 
Выделяет снова эту строчку:
Код: plaintext
MimeMessage message =  new  MimeMessage(session);
Что ему еще надо
...
Рейтинг: 0 / 0
10.01.2006, 15:33:51
    #33474529
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
Это JavaMail'у требуется JavaBeans Activation Framework , он же JAF.
...
Рейтинг: 0 / 0
10.01.2006, 15:48:21
    #33474583
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
Огромное спасибо Денис
...
Рейтинг: 0 / 0
20.12.2006, 11:58:01
    #34212557
crashc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
авторИ борись с кодировкой;)
Дык, точно...
А как ее бороть то ? ;)
...
Рейтинг: 0 / 0
20.12.2006, 12:21:11
    #34212684
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
crashcА как ее бороть то ? ;)
Указывать ее: http://www.jug.ru/servlets/index?page=rus#javamail
Код: plaintext
1.
2.
3.
4.
5.
6.
 static   final  String ENCODING = "koi8-r";
...
MimeMessage message =  new  MimeMessage(session);
...
message.setSubject("Тестовое письмо", ENCODING);
message.setText("Текст тестового письма", ENCODING);
...
Рейтинг: 0 / 0
20.12.2006, 13:41:44
    #34213099
crashc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
Это понятно...
Но просто необходимо отправить это все в формате html
message.setContent("<h1>xxx</h1>", "text/html");
mimbody.setText(out.toString(),"Windows-1251");

В первом случае, как надо, но только с кодировкой трабла...
Во втором же, кодировка в порядке, но совсем не в формате html приходит...
...
Рейтинг: 0 / 0
20.12.2006, 13:50:28
    #34213138
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
crashcНо просто необходимо отправить это все в формате html
Код: plaintext
1.
2.
3.
4.
5.
6.
//message.setText("Текст тестового письма", ENCODING);
message.setDataHandler(
   new  DataHandler(
     new  ByteArrayDataSource("<b>Текст тестового письма</b>", "text/html;charset=" + ENCODING)
  )
);
...
Рейтинг: 0 / 0
20.12.2006, 14:43:59
    #34213418
crashc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaMail
Денис, приблагодарен!!!
Человеческое спасибо!!!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaMail / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]