Java 发送邮箱(一) java 官方封装了发送邮件的协议,但是没有放到 jdk 中,所以我们如果想实现 发送邮箱的功能,需要加入依赖。
笔者这里用的是 maven
com.sun.mail
javax.mail
1.6.2
废话不多说,直接上代码
public class EmailTest {public static void main(String[] args) throws MessagingException, UnsupportedEncodingException {//进行配置
Properties props = new Properties();
props.setProperty("mail.smtp.host","smtp.163.com");
//配置 SMTP 服务器地址
props.setProperty("mail.smtp.port", "25");
//请求的端口
props.setProperty("mail.transport.protocol","smtp");
//请求的协议
props.setProperty("mail.smtp.auth","true");
//需要认证请求
props.setProperty("mail.smtp.ssl.enable", "true");
// 开启ssl//创建一个程序与邮件服务器会话对象 Session
Session session = Session.getDefaultInstance(props);
//开启Debug 模式
session.setDebug(true);
//通过 session 得到transport 对象
Transport ts = session.getTransport();
//使用邮箱的用户名和密码连接上邮件服务器
ts.connect("smtp.163.com","************@163.com","*************");
//创建邮件
Message message = createSimpleMail(session);
//发送邮件
ts.sendMessage(message,message.getAllRecipients());
//关闭邮件
ts.close();
}/**
*生成Message对象
*/
private static Message createSimpleMail(Session session) throws MessagingException, UnsupportedEncodingException {MimeMessage message = new MimeMessage(session);
//指定邮件的发件人
message.setFrom(new InternetAddress("************@163.com"));
//指定邮件的收件人的邮箱以及昵称
message.setRecipient(Message.RecipientType.TO,new InternetAddress("**********@qq.com","test"));
//邮件的标题
message.setSubject("测试");
//邮箱的内容
message.setText("你好!");
return message;
}}
笔者这里使用的是网易邮箱服务。这里有一个地方要注意
【Java|Java 发送邮箱(一)】网易的客户端授权码默认是关闭的,需要登陆邮箱手动设置成开启状态,如果不设置的话,会抛出认证失败的异常
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)