JavaMailAPI
https://www.yiibai.com/javamail_api/javamail_api_overview.html
在Maven环境下实现纯文本邮件发送
- Maven依赖包
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
- java代码
package day02.work;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MainUtil {
public static void main(String[] args) {
Properties props = new Properties();// 持久的属性集,继承自HashTable
props.put("mail.transport.protocol", "smtp");// 连接协议
props.put("mail.smtp.host", "smtp.qq.com");// 主机名
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");// 创建ssl安全连接
props.setProperty("mail.smtp.port", "465");// 端口号
Session session = Session.getInstance(props);// 得到会话对象
Message msg = new MimeMessage(session);// 获取邮件对象
try {
msg.setFrom(new InternetAddress("XXX@qq.com"));// 发件人地址
msg.setRecipient(Message.RecipientType.TO, new InternetAddress("XXX@163.com"));// 收件人地址,一个收件人
msg.setSubject("hello");// 设置标题
msg.setText("helloworld");// 设置邮件内容
msg.setSentDate(new Date());
Transport transport = session.getTransport();// 得到邮差对象
transport.connect("XXX@qq.com", "acinwvvrxwvdggga");// 连接你的邮箱账户,密码为qq邮箱客户端授权码
transport.sendMessage(msg, msg.getAllRecipients());// 发送邮件
System.out.println("发送成功");
transport.close();
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- 邮箱授权,qq邮箱为例
找到账户设置
打开SMTP服务,生成授权码