Java SE基于Java Email发送邮件
文章目录
- 一、Java Email
- 二、准备工作
- 三.具体操作
- 1.创建会话
- 2.准备数据
- 1.创建邮件对象
- 2.准备数据
- 3.创建复合对象
- 3.发送数据
- 四.总结
一、Java Email
JavaMail是提供开发者处理Email相关的编程接口,Java SE 中的Java Email未被添加至JDK的标准库里,需手动下载第三方库,但Java EE中Java Email为JDK的标准库。
二、准备工作
通过126邮箱将邮件发送至QQ邮箱,首先在126邮箱网页中的设置将POP3/SMTP服务打开、增加授权如图所示:


新增的授权密码仅提供一次,切记保存。
三.具体操作
1.创建会话
设置使用的服务器地址、账户及密码,创建会话:传入的参数为Properties 类、Authenticator类,创建Properties对象将主机号、端口号、是否需验证、启用STL加密添加至其中、创建Authenticator类的匿名类重写getPasswordAuthentication()方法将账户名和密码传入。
代码如下(示例):
// stmp服务器地址String smtp = "smtp.126.com";// 创建账户和密码String username = "LiuJiaMan516@126.com";String psd = "************";// 1.创建Smtp服务器的连接信息Properties props = new Properties();props.put("mail.smtp.host", smtp); // smtp主机props.put("mail.smtp.port", "25"); // smtp端口号props.put("mail.smtp.auth", "true"); // 是否需要用户认证props.put("mail.smtp.starttls.enable", "true"); // 启用STL加密// 创建sessionSession session = Session.getInstance(props, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {// TODO Auto-generated method stubreturn new PasswordAuthentication(username, psd);}});// 开启调试模式session.setDebug(true);
2.准备数据
1.创建邮件对象
创建邮件对象将会话对象传入其中,设置发件人和收件人及标题。
// 2.创建邮件对象
MimeMessage message= new MimeMessage(session);
message.setFrom(new InternetAddress("LiuJiaMan516@126.com")); // 发件人
message.setRecipient(RecipientType.TO, new InternetAddress("995184008@qq.com"));// 收件人
message.setSubject("来自外太空的邮件", "utf-8"); // 标题
2.准备数据
邮件的内容为:正文和附件,读取本地磁盘中的图片为附件,通过附件中的图片引用至正文中。
// ①.创建正文内容对象
BodyPart textPart = new MimeBodyPart();
StringBuilder body = new StringBuilder();
// ②设置标题
body.append("复仇者者联盟
");
// ③正文内容
body.append("外星喵人喊你干饭了....");
// ⑥通过内容的id引用【正文引用附件】
body.append("
\"cid:diaochan\"/>");
// ⑦将正文添加至BodyPart
textPart.setContent(body.toString(), "text/html;charset=utf-8");
// ⑧创建附件对象
BodyPart image = new MimeBodyPart();
// ⑨设置文件名称
image.setFileName("lazy.jpg");
// ⑩从本地磁盘读取图片
image.setDataHandler(new DataHandler(new ByteArrayDataSource(Files.readAllBytes(Paths.get("E://JavaTest//ccc//QQ20220522160440.jpg")),"application/octet-stream")));
// 设置附件ID
image.setHeader("Content-ID", "" );
3.创建复合对象
复合对象即为:正文部分和附件部分
// 4.创建复合对象
Multipart multiPart = new MimeMultipart();
// 将BodyPart添加至multiPart中
multiPart.addBodyPart(textPart);
multiPart.addBodyPart(image);
// 将复合对象添加至邮件对象中
message.setContent(multiPart);
3.发送数据
将数据通过Transport类的send()方法将数据发送至QQ邮箱。
// 5.发送数据
Transport.send(message);
四.总结
Java Email发送邮件大致可分为:创建会话、创建邮件、邮件内容、发送邮件。传输数据SMTP协议基于TCP/IP协议进行数据的传输,即发送数据前要建立连接。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
