Цель
Этот учебник является дополнением к статье оракула, опубликованной здесь .
Прочитав это позже, я решил поделиться некоторыми советами об этой конфигурации среды Java.
Вступление
Два года назад мы решили перейти на JEE 6 для наших корпоративных решений и получить массу удовольствия от новых функций и аннотаций EJB 3.1. Glassfish сделал нашу жизнь проще, было очень легко объявлять переменные, используя консоль администрирования.
Менее сложный , чем при использовании глобальной окружающей среды ресурсов для свойств Это также продолжение к этим уловкам этого учебника делегат серверу Glassfish EE управляющей почтой сессией.
Предпосылки
Перед началом этого урока вы должны:
Полное понимание http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/javamail/javamail.html
Иметь доступ к SMTP-серверу. Вы должны знать имя хоста, номер порта и настройки безопасности для вашего SMTP-сервера. Поставщики веб-почты могут предлагать SMTP-доступ, просматривать настройки учетной записи электронной почты или помогать находить дополнительную информацию. Имейте в виду, что вашим именем пользователя часто является полный адрес электронной почты, а не только имя, которое стоит перед символом @.
Иметь базовые знания о сервлетах и CDI (полезно, но не обязательно)
Создать ресурс сеанса почты Java
Чтобы создать и JavaMail Session:
- запустить сервер galssfish
- открыть консоль администратора (по умолчанию localhost: 4848)
- Перейдите в раздел « Ресурсы» -> « Сеансы JavaMail» -> нажмите «Добавить», чтобы добавить новый ресурс javaMail.
- убедитесь, что заполнено следующее поле:
- Имя Jndi: например, EMailME, позже будет использоваться при поиске ресурса:
@Resource(lookup = "EMailME")
-
Mail host
- Пользователь по умолчанию
- Отправитель по умолчанию будет использоваться позже в mailSession.getProperty («mail.from»)
5- Для безопасной почты добавьте эту расширенную настройку:
1-mail.smtp.password: пароль электронной почты
2-mail.smtp.port: порт электронной почты
3-mail.smtp.auth: правда
Этот скриншот обобщает все эти параметры:
II — Использование почтового сервиса
Этот урок является дополнением к оракулу. Мы будем использовать CDI с тем же примером.
1 — MailSessionBean будет компонентом CDI с RequestScope
2- Вставьте полный JavaMail Session как ресурс, а не создавайте его
@Named
@RequestScoped
public class EmailSessionBean {
@Resource(lookup = "EMailME")
private Session mailSession;
public void sendEmail(String to, String subject, String body) {
MimeMessage message = new MimeMessage(mailSession);
try {
message.setFrom(new InternetAddress(mailSession.getProperty("mail.from")));
InternetAddress[] address = {new InternetAddress(to)};
message.setRecipients(Message.RecipientType.TO, address);
message.setSubject(subject);
message.setSentDate(new Date());
message.setText(body);
Transport.send(message);
} catch (MessagingException ex) {
ex.printStackTrace();
}
}
}
Смотри коротко!
4- EmailServlet напоминает то же самое, за исключением использования @Inject, а не @EJB
@WebServlet(name = "EmailServlet", urlPatterns = {"/EmailServlet"})
public class EmailServlet extends HttpServlet {
@Inject
private EmailSessionBean emailBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
.........
}
......
}
Вывод
Давайте создадим для нас ES Server manager MailSession, сохраняем конфигурацию на сервере, и благодаря административной консоли Glassfish управление JavaMail Session стало проще.