Este capítulo ensinará como usar o aplicativo do Struts2 para enviar e -mails. Para este exercício, você precisa baixar e instalar o e-mail.jar da Javamail API 1.4.4 e colocar o arquivo Mail.jar na pasta Web-Inflib e continuar seguindo as etapas padrão para criar ações, visualizações e arquivos de configuração.
Crie uma ação:
O próximo passo é criar um método de ação e enviar um email. Vamos criar uma nova classe chamada emailer.java com o seguinte conteúdo.
pacote com.yiibai.struts2; importar java.util.properties; importar javax.mail.message; importar javax.mail.passwordAuthentication; import javax.mail.session; importemMetDord.Mail.mail.Transport; importemTax.MernTerTraxFress; importAmtAx. com.opensymphony.xwork2.actionsupport; public class Emailer estende o Actionsupport {private string de; senha de sequência privada; string privada para; Assunto de String Private; corpo de cordas privadas; Propriedades estáticas Propriedades = new Properties (); 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.ssSocketFactory"); Properties.put ("Mail.smtp.auth", "true"); Properties.put ("Mail.smtp.port", "465"); } public string Execute () {string ret = success; tente {session session = session.getDefaultInstance (Propriedades, new javax.mail.authenticator () {protected senhaTauthentication getPasswordAuthentication () {retorna nova senha etAuthentication (de, senha);}}); Mensagem mensagem = new Mimemessage (sessão); message.setFrom (new InternetAddress (de)); message.setRecipients (message.recipientType.to, internetAddress.parse (to)); message.SetSubject (sujeito); message.settext (corpo); Transport.send (mensagem); } catch (Exceção e) {ret = error; E.PrintStackTrace (); } retornar ret; } public string getFrom () {return of; } public void setFrom (string de) {this.from = de; } public string getPassword () {return senha; } public void setPassword (string senha) {this.password = senha; } public string getTo () {retorna para; } public void Setto (string to) {this.to = to; } public string getSBject () {retornar sujeito; } public void Setsubject (String sujeito) {this.subject = sujeito; } public string getBody () {retornar corpo; } public void setBody (String body) {this.body = body; } Propriedades estáticas públicas getProperties () {return Properties; } public static void setProperties (Propriedades Propriedades) {emailer.properties = Propriedades; }}Você pode ver que, no código -fonte acima, o emailer.java possui as propriedades correspondentes da página Email.jsp, dada abaixo no formulário. Essas propriedades
Consideramos qualquer validação de cada um dos atributos acima, e a validação será adicionada no próximo capítulo. Agora, vejamos o método Execute (). O método Execute () usa a biblioteca Javax Mail para enviar um email, usando os parâmetros fornecidos. Se a mensagem for enviada, a ação retornará o sucesso, caso contrário, ele retornará erro.
Crie uma página inicial:
Vamos escrever o arquivo JSP do Home Page Index.jsp, que será usado para coletar informações sobre e -mails, conforme mencionado acima:
<%@ página linguagem = "java" contentType = "text/html; charset = iso-8859-1" PageEncoding = "ISO-8859-1"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <! "http://www.w3.org/tr/html4/loose.dtd"><html><head><title> formulário </title> </firpe> <body> <em> O formulário abaixo usa o servidor SMTP do Google. Então, você precisa inserir um nome de usuário e senha do gmail </em> <formulário action = "emailer" method = "post"> <gravador para = "de"> de </celt> <br/> <input type = "text" name = "de"/> <br/> <bel para = "senha"> senha </etc. Para = "para"> para </crety> <br/> <input type = "text" name = "para"/> <br/> <etiqueta para = "sujeito"> sujeito </crety> <br/> <input type = "text" name = "hitding"/> <br/> <bel para = "corpora" <brod> <br/"<input" "" value = "Enviar email"/> </morm> </body> </html>
Crie uma visão:
Usaremos o sucesso.jsp do arquivo JSP para retornar o sucesso no caso em que a ação é chamada, mas no caso em que ocorre o erro, teremos outra visão de que o arquivo é retornado da ação.
<%@ página linguagem = "java" contentType = "text/html; charset = iso-8859-1" PageEncoding = "ISO-8859-1"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <! "http://www.w3.org/tr/html4/loose.dtd"><html><head><title> o sucesso do sucesso </title> </head> <body> seu email para <s: value) para" para "/> foi enviado com sucesso.
O seguinte estará em um caso de erro, retorne o arquivo de visualização Error.jsp da ação.
<%@ página linguagem = "java" contentType = "text/html; charset = iso-8859-1" PageEncoding = "ISO-8859-1"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <! "http://www.w3.org/tr/html4/loose.dtd"><html><head><title> Erro de correio
Arquivo de configuração:
Agora vamos combinar tudo isso com o arquivo de configuração do Struts.xml da seguinte forma:
<? xml versão = "1.0" coding = "utf-8"?> <! Doctype suporta public "-// Apache Software Foundation // DTD Struts Configuration 2.0 // pt" "http://struts.apache.org/dtds/stuts-2.0.ddddddds> <pacote name = "helloworld" estends = "struts-default"> <ação name = "emailer" method = "execute"> <resultado name = "success">/success.jsp </resultado> <nome de resultado = "error">/error.jsp </resultado> </action> </package> </struts>
Aqui está o conteúdo no arquivo 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.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" = "3.0">>>> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-App>
Agora, clique com o botão direito do mouse no nome do projeto e clique em Exportar> Arquivo de guerra para criar um arquivo de guerra. Em seguida, implante esta guerra no diretório WebApps do Tomcat. Por fim, inicie o servidor Tomcat e tente acessar o URL http: // localhost: 8080/helloworldstruts2/index.jsp. Isso dá a figura a seguir:
Digite as informações necessárias e clique no botão "Enviar email". Se tudo correr bem, você deve ver a seguinte página:
Se as três estruturas SSH forem usadas juntas, eu lhe darei um exemplo aqui, mas além das estruturas de suportes e primavera, email.jar, ativação.jar também é necessário.
1) Primeiro configure o Bean no arquivo ApplicationContext.xml
<bean id = "MailSender"> <propriedade name = "host" value = "host"/> <propriedade name = "nome de usuário" value = "nome de usuário"/> <propriedade name = "senha" value = "senha"/> </bean> <bean id = "sendmailaction" singleton = "false> </////" Mailsender ">
2) Implementar o código de classe Java para enviar e -mails
JavamailSenderImpl protegido MailSender; classe pública sendmailaction estende o ACOCIONSUPPORT {public void SetmailSender (JavamailSenderImpl MailSender) {this.mailsender = MailSender;} public void sendmail () lança exceção {{1: E -mail simples
JavamailSenderImpl protegido MailSender; classe pública sendmailaction estende o ACOCIONSUPPORT {public void SetmailSender (JavamailSenderImpl MailSender) {this.mailsender = MailSender;} public void sendmail () lança exceção {{ 2: Enviar e -mail HTML
// Crie mensagens de email, envie e -mails simples e emails html Mimemessage MailMessage = senderimpl.createmimemessage (); MimemessageHelper MessageHelper = new MimemessageHelper (MailMessage); // Defina o destinatário e o remessahelper.setto ("[email protected]"); messageHelper.setFrom ("[email protected]"); MessageHelper.SetSubject ("Teste HTML Mail!"); // True message messageHelper.settext ("<html> <head> </head> <body> <h1> Olá !! zhangjian </h1> </body> </html>", true); // Envie email sendenderimpl.send (MailMessage);3: fotos aninhadas neste e -mail de teste
// Crie mensagens de email, envie e -mails simples e emails html Mimemessage MailMessage = senderimpl.createmimemessage (); // Observe que o booleano aqui só pode aninhar imagens quando for verdadeiro. Ao construir MimemessageHelper, o valor fornecido é fiel à habilitação. Modo de multipartimento MimemessageHelper MessageHelper = new MimemessageHelper (MailMessage, True); // defina o destinatário, remessahelper.setto ("[email protected]"); messageHelper.setFrom ("[email protected]"); MessageHelper.SetSubject ("Imagens aninhadas no teste de teste !!"); // true indica a mensagem no formato html messageHelper.settext ("<html> <head> </head> <body> <h1> Olá !! zhangjian </h1>" + "<img src ="/"mce_src ="/"cid: aaa/ FilesystemResource IMG = new FileSystemResource (novo arquivo ("c: /aaa.jpg")); messageHelper.addinline ("aaa", img); // Envie email sendenderimpl.send (MailMessage); }}