版权声明:Mr.O版权所有 转载请标明出处 https://blog.csdn.net/qq_28189423/article/details/86576959
本内容主要用于java代码中,邮件的发送,具体步骤分成以下三点:
1、开启邮箱POP3服务
邮箱->设置->账户
开启POP3服务
点击生成授权码获取授权码 此授权码在之后将作为邮箱密码使用
2、使用context.xml的配置方便修改参数,也可以使用properties等其他方式配置。
<Context>
<!-- 邮箱 -->
<Environment name="emailUser" value="[email protected]" type="java.lang.String"/>
<!-- 邮箱密码 第三方密码通过邮箱中的POP3支持获得的授权码 -->
<Environment name="emailPwd" value="qogizwftggbzgeca" type="java.lang.String"/>
<!-- 邮箱服务器 qq邮箱服务器 -->
<Environment name="emailHost" value="smtp.qq.com" type="java.lang.String"/>
<!-- 使用密码认证 -->
<Environment name="emailAuth" value="true" type="java.lang.String"/>
<!-- 通信协议 smtp -->
<Environment name="emailProtocol" value="smtp" type="java.lang.String"/>
<!-- 通信端口号 25 -->
<Environment name="emailPort" value="25" type="java.lang.Integer"/>
</Context>
3、定义静态方法发送邮件
需要引入jar包 javax.mail-1.5.1.jar
jar包下载地址 https://pan.baidu.com/s/1cpfcRp_arEIB8XO0F39uFQ
import java.util.Properties;
import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class SendJMail {
/**
*
* @param to 收件人邮箱账号
* @param emailMsg 邮件内容
* @return
*/
public static boolean sendMail(String to, String emailMsg) {
try {
Context context = new InitialContext();
String emailUser = (String)context.lookup("java:comp/env/emailUser");
String emailPwd = (String)context.lookup("java:comp/env/emailPwd");
String emailHost = (String)context.lookup("java:comp/env/emailHost");
String emailAuth = (String)context.lookup("java:comp/env/emailAuth");
String emailProtocol = (String)context.lookup("java:comp/env/emailProtocol");
int emailPort = (Integer)context.lookup("java:comp/env/emailPort");
//获取系统环境信息
Properties props = System.getProperties();
//设置邮件服务器
props.setProperty("mail.smtp.host", emailHost);
//设置密码认证
props.setProperty("mail.smtp.auth", emailAuth);
//设置传输协议
props.setProperty("mail.transport.protocol", emailProtocol);
//创建session对象
Session session = Session.getInstance(props);
//设置输出日志
session.setDebug(true);
//邮件发送对象
MimeMessage message = new MimeMessage(session);
//设置发件人
message.setFrom(new InternetAddress(emailUser));
//设置邮件主题
message.setSubject("测试邮件");
//设置邮件内容
//message.setText("Welcome to JavaMail World!");
//如果带网页内容使用Content发送
message.setContent((emailMsg),"text/html;charset=utf-8");
//获取邮件发送管道
Transport transport=session.getTransport();
//连接管道
transport.connect(emailHost,emailPort, emailUser, emailPwd);
//发送邮件
transport.sendMessage(message,new Address[]{new InternetAddress(to)});
//关闭管道
transport.close();
return true;
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
catch (MessagingException e) {
e.printStackTrace();
return false;
}
}
}
联网状态下,调用本方法即可发送电子邮件。