利用Java的Struts框架实现电子邮件发送功能
在Struts框架中,可以使用JavaMail实现电子邮件的发送。下面是实现电子邮件发送的完整攻略:
步骤1:导入JavaMail和相关依赖
要使用JavaMail,需要将相关的jar包导入项目中。可以下载JavaMail的jar包和JAF(Java Activation Framework)的jar包,导入项目中。
步骤2:在struts.xml中配置Action映射
在struts.xml中,需要配置到达发送邮件页面的Action映射和发送邮件的Action映射。例如:
<action name="showEmailForm" class="com.example.action.ShowEmailFormAction">
<result name="success">/emailForm.jsp</result>
</action>
<action name="sendEmail" class="com.example.action.SendEmailAction">
<result name="success">/emailSuccess.jsp</result>
<result name="error">/emailError.jsp</result>
</action>
步骤3:创建发送邮件的Action
在该Action中,需要实现发送邮件的方法。以下是示例代码:
public String execute() {
try {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("yourGmailUsername", "yourGmailPassword");
}
});
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);
return SUCCESS;
} catch (MessagingException e) {
e.printStackTrace();
return ERROR;
}
}
步骤4:创建发送邮件页面
发送邮件的页面需要包含收件人地址、邮件主题和邮件正文的输入框以及发送按钮。以下是示例代码:
<form action="sendEmail" method="post">
To: <input type="text" name="to"><br />
Subject: <input type="text" name="subject"><br />
Body: <textarea name="body"></textarea><br />
<input type="submit" value="Send Email">
</form>
示例1:使用Gmail发送邮件
使用Gmail发送邮件需要连接Gmail的SMTP服务器。在上述示例中,SMTP服务器的地址为smtp.gmail.com,端口号为465。同时,需要使用SSL加密连接。
示例2:使用QQ邮箱发送邮件
使用QQ邮箱发送邮件需要连接QQ邮箱的SMTP服务器。在上述示例中,SMTP服务器的地址为smtp.qq.com,端口号为587。同时,需要使用TLS加密连接。
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.qq.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "587");
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("yourQQEmailUsername", "yourQQEmailPassword");
}
});
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用Java的Struts框架实现电子邮件发送功能 - Python技术站