用QQ邮箱往163邮箱发送邮件
首先你需要开启QQ邮箱的POP3/SMTP服务
步骤为 登陆QQ邮箱 -》 进入邮箱设置 -》进入账户,该页面可以开启该服务
开启成功如图:
服务开启成功时你会得到相应的授权码,记住该授权码,下面会用到
发邮件方法的代码如下:
public static void email(Integer authcode) throws MessagingException, GeneralSecurityException
{
//获取本地时间
Date date = new Date();
DateFormat df = DateFormat.getDateTimeInstance();
System.out.println("当前日期时间:" + df.format(date));
Properties props = new Properties();
// 开启debug调试
props.setProperty("mail.debug", "true");
// 发送服务器需要身份验证
props.setProperty("mail.smtp.auth", "true");
// 设置邮件服务器主机名
props.setProperty("mail.host", "smtp.qq.com");
// 发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");
//开启SSL加密
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
Session session = Session.getInstance(props);
Message msg = new MimeMessage(session);
msg.setSubject("邮箱验证");
StringBuilder builder = new StringBuilder();
builder.append("这是一个邮箱验证的过程,如果不是你,请忽略他");
builder.append("\n您的邮箱验证码为"+authcode);
builder.append("\n时间 " + df.format(date));
msg.setText(builder.toString());
msg.setFrom(new InternetAddress("发件人邮箱"));
Transport transport = session.getTransport();
transport.connect("smtp.qq.com", "发件人邮箱", "开启POP3/SMTP获取的授权码");
transport.sendMessage(msg, new Address[] { new InternetAddress("收件人邮箱") });
transport.close();
}
首先,我是一个小菜鸡程序员,如果哪里有问题,欢迎大家指正
其次,该方法我自己已经测试过了,可以使用,如果你有好的意见和修改方式,可以提出来,前提是你的想法已经转化为实际行动并可以成功哦!!!