当前位置:K88软件开发文章中心网站服务器框架Struts2 → 文章内容

Struts2 发送电子邮件

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-25 14:39:31

由 lxjazni_7 创建,youj 最后一次修改 2016-12-12 本章内容将教你如何使用Struts2 应用程序发送电子邮件。学习前,你需要从JavaMail API 1.4.4下载并安装mail.jar,并将mail.jar文件放在WEB-INF\lib文件夹中,然后继续按照以下标准步骤创建action,视图和配置文件。 创建Action首先是创建一个Action方法来处理电子邮件发送。让我们创建一个包含以下内容的名为Emailer.java的新类: package cn.k88.struts2;import java.util.Properties;import javax.mail.Message;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import com.opensymphony.xwork2.ActionSupport;public class Emailer extends ActionSupport { private String from; private String password; private String to; private String subject; private String body; static Properties properties = 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.SSLSocketFactory"); properties.put("mail.smtp.auth", "true"); properties.put("mail.smtp.port", "465"); } public String execute() { String ret = SUCCESS; try { Session session = Session.getDefaultInstance(properties, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(from, password); }}); Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject(subject); message.setText(body); Transport.send(message); } catch(Exception e) { ret = ERROR; e.printStackTrace(); } return ret; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getPassword() { return password; } 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 subject; } public void setSubject(String subject) { this.subject = subject; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public static Properties getProperties() { return properties; } public static void setProperties(Properties properties) { Emailer.properties = properties; }}如上面的源代码所示,Emailer.java具有与下面给出的email.jsp页面中的表单属性相对应的属,这些属性分别是: from - 发件人的电子邮件地址。由于我们使用Google的SMTP,因此我们需要有效的gtalk ID。 password - 上述帐户的密码 to - 发送电子邮件给谁? Subject - 电子邮件的主题 body - 实际的电子邮件内容我们没有考虑对上述字段的任何验证,验证将在下一章添加。让我们看看execute()方法, execute()方法使用javax Mail库提供的参数发送电子邮件。如果邮件成功发送,action返回SUCCESS,否则返回ERROR。 创建主页现行编写主页的JSP文件index.jsp,这将用于收集上面提到的电子邮件相关信息: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Email Form</title></head><body> <em>The form below uses Google's SMTP server. So you need to enter a gmail username and password </em> <form action="emailer" method="post"> <label for="from">From</label><br/> <input type="text" name="from"/><br/> <label for="password">Password</label><br/> <input type="password" name="password"/><br/> <label 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="Send Email"/> </form></body></html>创建视图现在创建success.jsp文件,这在action返回SUCCESS结果的情况下会被调用,但如果从action返回ERROR结果,我们将用另一个视图文件。 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Email Success</title></head><body> Your email to <s:property value="to"/> was sent successfully.</body></html>以下将是在action返回ERROR的情况下调用的视图文件error.jsp。 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Email Error</title></head><body> There is a problem sending your email to <s:property value="to"/>.</body></html>配置文件最后,让我们使用struts.xml配置文件将所有内容放在

[1] [2]  下一页


Struts2 发送电子邮件