Как использовать базовые функции Java Mail уже было расмотрено в одном из предыдущих обзоров. Теперь
рассмотрим, как отправлять почту через защищённое соеденение с smtp сервером.
для того, что-бы установить такое соеденение необходимо:
- принять сертификаты подлинности сервера;
- пройти аутентификацию на сервере.
Для начала мы должны зареестрировать провайдера алгоритма SSL :
Security.addProvider( new com.sun.net.ssl.internal.ssl.Provider());
Далее следует создать класс, который является наследником: SSLSocketFactory, и добавить имя этого класс в
свойства:
Security.setProperty( "ssl.SocketFactory.provider",SimpleSSLSocketFactory.class.getCanonicalName());
Для того что-бы выполнить соеденение по SSL/TLS нам надо принять все сертификаты сервера. Для этого мы
перегрузим свой TrustManager(класс проверяющий подлинность сертификатов) и при инициализации SSL сессии в
нашем SimpleSSLSocketFactory , TrustManager будет без проверки принимать все сертификаты предоставленные
сервером. Благодаря этому нам удастся установить соеденение с сервером.
Теперь нам осталось установить ещё несколько дополнительных свойств для использования SSL/TLS :
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
props.setProperty( "mail.smtp.socketFactory.class", SSL_FACTORY);
// использовать только ssl соеденения в любом из направлений
props.setProperty( "mail.smtp.socketFactory.fallback", "false");
// smtp требует автентификации
props.setProperty("mail.smtp.auth","true");
После этого мы собираем письмо, как показано в предыдущей статье и отсылаем его следующим образом:
Transport tr = session.getTransport("smtp");
tr.connect(smtpHost, username, password);
msg.saveChanges();
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
Где в полях username, password надо указать соответствующие данные учётной записи на smtp сервере.
На этом всё. Если у вам не удалось самому собрать такое приложение, вы можете скачать мои исходники.
Ресурсы:
исходники : http://depositfiles.com/files/3109865
java.sun.com/products/javamail
Комментариев нет:
Отправить комментарий