1、申请163发送邮件权限
2、开启服务,会获取授权码,只会提示一次,一定要粘贴保存好
3、
3、java实现代码
try{
// 1.创建一个程序与邮件服务器会话对象 Session 解决linux上发送邮件失败问题,需要下面的配置
MailSSLSocketFactory sf = new MailSSLSocketFactory();
// 设置信任所有的主机,linux服务器设置的ssl导致不能进行发送邮件功能
sf.setTrustAllHosts( true );
Properties props = new Properties();
props.setProperty( "mail.transport.protocol", "SMTP" );
props.setProperty( "mail.host", "smtp.163.com" );
props.setProperty( "mail.smtp.auth", "true" );// 指定验证为true是否需要身份验证
props.setProperty( "mail.smtp.ssl.enable", "true" );
props.put( "mail.smtp.ssl.socketFactory",sf );
props.put( "username","发送者的邮箱名@163.com");
// 创建验证器
Authenticator auth = new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
// 密码验证,第一个参数:邮箱名不包括@163.com,第二个参数:授权码
return new PasswordAuthentication( "发送者的邮箱名", "授权码" );
}
};
Session session = Session.getInstance( props, auth );
// 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug( true );
// 2.创建一个Message,它相当于是邮件内容
Message message = new MimeMessage( session );
message.setFrom( new InternetAddress( "发送者的邮箱名@163.com" ) ); // 设置发送者
message.setRecipient( MimeMessage.RecipientType.CC, new InternetAddress( props.get("username").toString() ) );//抄送自己,只有抄送自己才能给别的邮箱如:qq邮箱进行邮件发送
message.setRecipient( MimeMessage.RecipientType.TO, new InternetAddress( emailAddress ) ); // 设置发送方式与接收者
message.setSubject( "邮箱验证码" );
code = new StringBuffer().append(Math.round((Math.random() + 1) * 1000)).toString();
message.setContent( new StringBuffer().append("您好,您更改邮箱的验证码为:").append(code).toString(), "text/html;charset=utf-8" );
// 3.创建 Transport用于将邮件发送
Transport.send( message );
} catch (Exception e) {
//获取捕捉异常并做相应的处理
e.getMessage();
e.printStackTrace();
return R.error("发送邮箱异常!");
}



