Эта глава научит вас, как использовать приложение Struts2 для отправки электронных писем. Для этого упражнения вам необходимо загрузить и установить mail.jar из Javamail API 1.4.4 и поместить файл mail.jar в папку Web-Inflib, а затем продолжать выполнять стандартные шаги для создания действий, представлений и файлов конфигурации.
Создайте действие:
Следующим шагом является создание метода действия и отправить электронное письмо. Давайте создадим новый класс под названием Emlecter.java со следующим контентом.
пакет com.yiibai.struts2; import java.util.properties; импорт javax.mail.message; импорт javax.mail.passwordAuthentication; импорт javax.mail.session; импорт javax.mail.transport; импорт javax.mail.internet.internetaddress; импорт javax.mail. com.opensymphony.xwork2.actionsupport; открытый класс по электронной почте расширяет actionsupport {private String from; Private String Password; частная строка; частная строковая тема; частное тело; Свойства статических свойств = новые свойства (); static {properties.put ("mail.smtp.host", "smtp.gmail.com"); Properties.put ("mail.smtp.socketfactory.port", "465"); properties.put ("mail.smtp.socketfactory.class", "javax.net.ssl.sslsocketFactory"); Properties.put ("mail.smtp.auth", "true"); Properties.put ("mail.smtp.port", "465"); } public String execute () {string ret = успех; try {session = session.getDefaultInstance (свойства, new javax.mail.authenticator () {Защищенный пароль. Сообщение сообщения = new Mimemessage (Session); message.setfrom (new InternetAddress (от)); message.setRecipients (message.recipienttype.to, InternetAddress.parse (to)); message.setsubject (субъект); message.settext (body); Transport.send (сообщение); } catch (Exception e) {ret = ошибка; e.printstacktrace (); } return ret; } public String getFrom () {return из; } public void setFrom (string from) {this.from = from; } public String getPassword () {return пароль; } public void setPassword (String password) {this.password = password; } public String getTo () {return to; } public void setto (string to) {this.to = to; } public String getSubject () {return toot; } public void setSubject (строка субъекта) {this.subject = subject; } public String getBody () {return Body; } public void setbody (строковое тело) {this.body = body; } public Static Properties getProperties () {return Properties; } public static void setProperties (Properties Properties) {emlecter.properties = Properties; }}Вы можете видеть, что в приведенном выше исходном коде, emlecter.java обладает соответствующими свойствами страницы email.jsp, приведенной ниже в форме. Эти свойства
Рассмотрели ли мы любую проверку каждого из приведенных выше атрибутов, и проверка будет добавлена в следующей главе. Теперь давайте посмотрим на метод execute (). Метод execute () использует библиотеку Javax Mail для отправки электронной почты, используя предоставленные параметры. Если сообщение отправлено, действие возвращает успех, в противном случае оно возвращает ошибку.
Создайте домашнюю страницу:
Давайте напишем файл JSP на домашней странице index.jsp, который будет использоваться для сбора информации о электронных письмах, как указано выше:
<%@ page language = "java" contentType = "text/html; charset = iso-8859-1" pageEncoding = "iso-8859-1"%> <%@ taglib prefix = "s" uri = "/struts-com "http://www.w3.org/tr/html4/loose.dtd"><html><head><tille> hail form </title> </head> <body> <em> в форме ниже используется SMTP -сервер Google. Таким образом, вам нужно ввести имя пользователя Gmail и пароль </em> <form action = "exailer" method = "post"> <label для = "from"> from </label> <br/> <input type = "text" name = "from"/> <br/> <label for = "password"> password </label> <br/> <input = "passwor for="to">To</label><br/> <input type="text" name="to"/><br/> <label for="subject">Subject</label><br/> <input type="text" name="subject"/><br/> <label for="body">Body</label><br/> <input type="text" name="body"/><br/> <input type="submit" value = "Отправить электронную почту"/> </form> </body> </html>
Создайте представление:
Мы будем использовать Success.jsp файла JSP, чтобы вернуть успех в случае, когда действие называется, но в случае, когда возникает ошибка, у нас будет еще одно представление о том, что файл возвращается из действия.
<%@ page language = "java" contentType = "text/html; charset = iso-8859-1" pageEncoding = "iso-8859-1"%> <%@ taglib prefix = "s" uri = "/struts-com «http://www.w3.org/tr/html4/loose.dtd"><html><head><title> hemail успех </title> </Head> <body> Ваша электронная почта <S: Property Value ="/> было успешно отправлено. </body> </html>
Следующее будет в случае ошибки, верните файл View File error.jsp из действия.
<%@ page language = "java" contentType = "text/html; charset = iso-8859-1" pageEncoding = "iso-8859-1"%> <%@ taglib prefix = "s" uri = "/struts-com «http://www.w3.org/tr/html4/loose.dtd"><html><head><title> погрешность» </title> </head> <body> Существует проблема с отправкой вашей электронной почты <S: Property Value = "/> Body> </html>
Файл конфигурации:
Теперь давайте объединим все это с файлом конфигурации struts.xml следующим образом:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Struts Public "-// Apache Software Foundation // Конфигурация Struts DTD 2.0 // en" "http://struts.apache.org/dtds/struts-2.0.dtd"/struts> <constancant name = "str structs"/stachut "= vatrods"/stachut. name = "helloWorld" extends = "struts-default"> <name = "emlecileer" method = "execute"> <name = "success">/success.jsp </result> <name = "error">/error.jsp </result> </action> </package> </struts>
Вот контент в файле web.xml:
<? xml version = "1.0" Encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "webapp_id" version = "3.0"> <Slace-Name> Struts 2 </wepsist-fist> <welcelporting> index.jsp </werving-file> </werveding-file-list> <filter> <filter-name> struts2 </filter-name> <filter-class> org.apache.struts2.dispatcher.filterdispatcher </filter-class> </filter> <filter-mapping> <filter-name> strats2 </filter> </filter> <filter> <filter-name> strats2 </filter> </filter> <filter> <filter-name> ruts2 </filter> </filter> <Filter> <Url-pattern>/*</url-pattern> </filter-mapping> </web-app>
Теперь щелкните правой кнопкой мыши по имени проекта и нажмите «Экспорт»> «Файл войны», чтобы создать файл войны. Затем разверните эту войну в каталоге Tomcat WebApps. Наконец, запустите сервер Tomcat и попробуйте получить доступ к URL http: // localhost: 8080/helloworldstruts2/index.jsp. Это дает следующую картину:
Введите необходимую информацию и нажмите кнопку «Отправить электронную почту». Если все идет хорошо, вы должны увидеть следующую страницу:
Если три фреймворки SSH используются вместе, я приведу вам пример здесь, но в дополнение к рамках стопор и Spring, mail.jar, active.jar также требуется.
1) Сначала настроить Bean в файле ApplicationContext.xml
<bean id="mailSender"> <property name="host" value="host"/> <property name="username" value="username"/> <property name="password" value="password"/> </bean><bean id="sendMailAction" singleton="false"> <property name="mailSender"><ref bean="mailSender"/> </property></bean>
2) Реализуйте код класса Java для отправки электронных писем
Защищенный javamailsenderimpl mailsender; public class sendmailction extends actionsupport {public void setmailsender (javamailsenderimpl mailsender) {this.mailsender = mailsender;} public void sendmail () Throws Exception {1: Простая электронная почта
Защищенный javamailsenderimpl mailsender; public class sendmailction extends actionsupport {public void setmailsender (javamailsenderimpl mailsender) {this.mailsender = mailsender;} public void sendmail () Throws Exception { 2: Отправить HTML Mail
// Создание сообщений электронной почты, отправить простые электронные письма и html электронные письма mimemessage mailmessage = senderimpl.creatememessage (); MimemessageHelper MessageHelper = new MimemessageHelper (MailMessage); // Установить получатель и отправитель MessageHelper.setto ("[email protected]"); messageHelper.setFrom ("[email protected]"); MessageHelper.setSubject («Тест HTML Mail!»); // True Message MessageHelper.Settext ("<html> <head> </head> <body> <h1> Привет !! Zhangjian </h1> </body> </html>", true); // Отправить электронную почту senderimpl.send (mailmessage);3: вложенные картинки в этом тестовом письме
// Создание сообщений электронной почты, отправить простые электронные письма и html электронные письма mimemessage mailmessage = senderimpl.creatememessage (); // Обратите внимание, что логический здесь может гнездясь только в изображениях, когда это правда. При строительстве MimemessageHelper заданное значение верно для включения. Multipart Mode MimemessageHelper MessageHelper = new MimemessageHelper (mailMessage, true); // Установить получателя, отправитель messageHelper.setto ("[email protected]"); messageHelper.setFrom ("[email protected]"); MessageHelper.setSubject («Вложенные изображения в тестовой почте !!»); // true указывает сообщение в html format messagehelper.settext ("<html> <Head> </head> <body> <h1> Привет !! zhangjian </h1>" + "<img src ="/"mce_src ="/"" cid: aaa/"// </body> </html>", true); FileSystemresource img = new FileSystemresource (новый файл ("c: /aaa.jpg")); MessageHelper.Addinline ("AAA", IMG); // Отправить электронную почту senderimpl.send (mailmessage); }}