1.0 开发环境
- 开发工具 idea
- 额外jar包 mail.jar
jar包的maven地址
<!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->
<dependency >
<groupId >com.sun.mail </groupId >
<artifactId >javax.mail </artifactId >
<version >1.5.4 </version >
</dependency >
代码如下:
package com.ccut.base.util;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
/**
* Created by admin on 2018/6/24.
*/
public class SendMail {
public SendMail(){
//做链接前的准备工作 也就是参数初始化
Properties properties = new Properties();
properties.setProperty("mail.smtp.host","smtp.qq.com");//发送邮箱服务器
properties.setProperty("mail.smtp.port","465");//发送端口
properties.setProperty("mail.smtp.auth","true");//是否开启权限控制
properties.setProperty("mail.debug","true");//true 打印信息到控制台
properties.setProperty("mail.transport","smtp");//发送的协议是简单的邮件传输协议
properties.setProperty("mail.smtp.ssl.enable","true");
//建立两点之间的链接
System.out.println("执行了2");
Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("2869441798@qq.com","xxxxxdfda");
}
});
System.out.println("执行了3");
//创建邮件对象
Message message = new MimeMessage(session);
//设置发件人
try {
message.setFrom(new InternetAddress("2869441798@qq.com"));
//设置收件人
message.setRecipient(Message.RecipientType.TO,new InternetAddress("2314449060@qq.com"));//收件人
//设置主题
message.setSubject("验证码");
//设置邮件正文 第二个参数是邮件发送的类型
message.setContent("2569658","text/html;charset=UTF-8");
//发送一封邮件
Transport transport = session.getTransport();
transport.connect("2869441798@qq.com","xxxxxda");
Transport.send(message);
System.out.println("执行了");
} catch (MessagingException e) {
e.printStackTrace();
}finally {
}
}
public static void main(String[] args) {
System.out.println("执行了1");
SendMail SendMail = new SendMail();
}
}
大多数代码看注释就可以看懂了
但是要注意我们发送的账户要去邮箱开启
POP3/SMTP服务
步骤我们以qq为例
看图就行了
然后
开启服务
发送短信
然后会给你一个授权码 这就相当于你的登录密码
也就是上述xxxxxdfda 地方换成响应的授权码 这样就可以不用担心密码泄露的问题了
关于即使填了授权码也报535错误的原因可能是网络问题,我遇见过,莫名其妙就好了。。。。。我也不知道为啥
上面的问题今天又遇见了,最终知道了原因 就是短时间内你发送了大量的邮件 导致的 所以过5分钟左右你在发送就好了 这个应该是qq邮箱的问题