Собственно нужно было послать. Из программы. С почтового ящика на Yandex. А Яндекс перешёл на SSL
Что характерно копи-паст из интернета ничего не дал. Все время вылазили исклчючения. Или письма вроде как уходили, но в ящик не приходили.
Полез сюда в раздел Programming на oracle.com. Нашёл вот такое:
Последовал рекомендациям и о чудо все получилось. Приведу функцию полностью как она работает у меня:
Что характерно копи-паст из интернета ничего не дал. Все время вылазили исклчючения. Или письма вроде как уходили, но в ящик не приходили.
Полез сюда в раздел Programming на oracle.com. Нашёл вот такое:
Q: What are some of the most common mistakes people make when using JavaMail? A: Unfortunately, the internet is full of copy and paste programmers who don't understand the code they're using, which has resulted in a lot of unnecessarily complex and often incorrect examples. The most common mistakes are:что характерно, прямо про меня.
- Use of
Session.getDefaultInstance
. Almost all code should useSession.getInstance
instead, as described below
- Calling the
send
method on a Transport instance variable. As described below,send
is a static method and ignores the Transport instance you use to call it.
- Setting various
socketFactory
properties. Long, long ago JavaMail didn't have built in support for SSL connections, so it was necessary to set these properties to use SSL. This hasn't been the case for years; remove these properties and simplify your code. The easiest way to enable SSL support in current versions of JavaMail is to set the property "mail.smtp.ssl.enable" to "true". (Replace "smtp" with "imap" or "pop3" as appropriate.)
- Using an Authenticator just to supply a username and password. There's really nothing wrong with using an Authenticator, it's just unnecessarily complex. A more straightforward approach is to call the
connect
method that takes a username and password when connecting to a Store. When sending a message, use the staticTransport.send
method that takes a username and password.
Последовал рекомендациям и о чудо все получилось. Приведу функцию полностью как она работает у меня:
public void sendMail(String paramTo, String paramSubject, String paramBody)Тащемта всё.
{
try
{
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.yandex.ru");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.ssl.enable","true");
Session session = Session.getInstance(props);
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("my_mailbox@yandex.ru"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(paramTo.trim()));
message.setContent("This is a test", "text/plain");
message.setSubject(paramSubject);
message.setText(paramBody);
Transport.send(message,"user_name", "user_password");
System.out.println("Sent message successfully....");
} catch (Exception mex)
{
System.out.println("******* ERROR sending Email *******");
mex.printStackTrace();
}
}
Лучший поставщик комплектующих
Комментариев нет:
Отправить комментарий