第一步,下载 jar 包
Maven 加载
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.5.6</version> </dependency>
手动下载 Jar 包地址:链接:http://pan.baidu.com/s/1boHoxEB 密码:rc73
第二步,代码实现
SendMailServlet.java Servlet 类 源码
package com.hjli.main;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SendMailServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
// 创建Properties 类用于记录邮箱的一些属性
final Properties props = new Properties();
InputStream in = SendMailServlet.class.getClassLoader().getResourceAsStream("config/email.properties");
props.load(in);
// 构建授权信息,用于进行SMTP进行身份验证
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
// 用户名、密码
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
// 使用环境属性和授权信息,创建邮件会话
Session mailSession = Session.getInstance(props, authenticator);
// 创建邮件消息
MimeMessage message = new MimeMessage(mailSession);
// 设置发件人
InternetAddress form = new InternetAddress(
props.getProperty("mail.user"));
message.setFrom(form);
// 设置收件人的邮箱
InternetAddress to = new InternetAddress("2252487366@qq.com");
message.setRecipient(RecipientType.TO, to);
// 设置邮件标题
message.setSubject("测试邮件");
// 设置邮件的内容体
message.setContent("这是一封测试邮件", "text/html;charset=UTF-8");
// 最后当然就是发送邮件啦
Transport.send(message);
request.setAttribute("sendmail.message", "邮件发送成功!");
}catch(Exception e){
request.setAttribute("sendmail.message", "邮件发送不成功!"+e.getMessage());
}
request.getRequestDispatcher("/sendResult.jsp").forward(request,
response);
}
}
email.proprites 配置文件
#mail.smtp.auth=true #mail.smtp.host=smtp.qq.com #mail.smtp.port=587 #mail.user=2252487366@qq.com #mail.password=****** mail.smtp.auth=true mail.smtp.host=smtp.sina.com mail.smtp.port=25 mail.user=2252487366li@sina.cn mail.password=******
新浪的是:smtp.sina.com 端口为 25 password 处是填写邮箱的帐号密码
腾讯的是:smtp.qq.com 端口为 465 或者 587 password 处是填写 授权码,不是你的邮箱帐号密码新浪和腾讯的 smtp 的分别配置教程:
新浪:http://help.sina.com.cn/index.php?s=questionlist&a=view&classid=116
腾讯:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=371
最后,感谢前辈们的资源,我在此也放上我整理后的源代码供大家参考
1、在下方留下邮箱即可
2、QQ 群:点击链接加入群【项目分析、开发指导群】:https://jq.qq.com/?_wv=1027&k=47bCfWp 进群一元群费用来发红包
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于