一、只带有纯文本的邮件
代码事例如下:
package com.lyh.sendemail; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; //发送邮件 public class MessageDemo1 { public static void main(String[] args) throws Exception{ Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置 props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的 props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的 // props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的 props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关 Session session = Session.getInstance(props);//发送邮件时使用的环境配置 session.setDebug(true); MimeMessage message = new MimeMessage(session); //设置邮件的头 message.setFrom(new InternetAddress("xxx@163.com")); message.setRecipients(Message.RecipientType.TO, "xxx@qq.com"); message.setSubject("This is second message"); //设置正文 message.setContent("<h1 id="hello">hello</h1>", "text/html"); // message.setText("<h1 id="hello">hello</h1>");//纯文本 message.saveChanges(); //发送邮件 Transport ts = session.getTransport(); ts.connect("xxx@163.com", "123456"); // 密码为授权码不是邮箱的登录密码 ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法} } }
二、带有图片的邮件
a、复杂邮件封装模型
代码事例
package com.lyh.sendemail; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; //发送邮件 public class MessageDemo2 { public static void main(String[] args) throws Exception{ Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置 props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的 props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的 // props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的 props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关 Session session = Session.getInstance(props);//发送邮件时使用的环境配置 session.setDebug(true); MimeMessage message = new MimeMessage(session); //设置邮件的头 message.setFrom(new InternetAddress("xxx@163.com")); message.setRecipients(Message.RecipientType.TO, "xxx@qq.com"); message.setSubject("This is second message"); //设置正文 //搞出文本部分 MimeBodyPart textPart = new MimeBodyPart(); textPart.setContent("aaa<img src='cid:mm'/ alt="JavaMail邮件开发" >aaa", "text/html"); //搞图片部分 MimeBodyPart imagePart = new MimeBodyPart(); imagePart.setContentID("mm"); //把磁盘上的文件加到part中使用到了JAF框架 DataHandler dh = new DataHandler(new FileDataSource("src/0.jpg")); imagePart.setDataHandler(dh); MimeMultipart mp = new MimeMultipart(); mp.addBodyPart(textPart); mp.addBodyPart(imagePart); mp.setSubType("related");//有关系的 message.setContent(mp); message.saveChanges(); //发送邮件 Transport ts = session.getTransport(); ts.connect("xxx@163.com", "123456"); //密码为授权码不是邮箱的登录密码 ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法 } }
三、带有文本、图片、附件的邮件
代码事例:
package com.lyh.sendemail; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; //发送邮件 public class MessageDemo3 { public static void main(String[] args) throws Exception{ Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置 props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的 props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的 // props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的 props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关 Session session = Session.getInstance(props);//发送邮件时使用的环境配置 // session.setDebug(true); MimeMessage message = new MimeMessage(session); //设置邮件的头 message.setFrom(new InternetAddress("xxx@163.com")); message.setRecipients(Message.RecipientType.TO, "xxxqq.com"); message.setSubject("这是一封复杂的邮件"); //设置正文 //搞出文本部分 MimeBodyPart textPart = new MimeBodyPart(); textPart.setContent("美女<img src='cid:mm'/ alt="JavaMail邮件开发" >aaa", "text/html;charset=UTF-8"); //搞图片部分 MimeBodyPart imagePart = new MimeBodyPart(); imagePart.setContentID("mm"); //把磁盘上的文件加到part中使用到了JAF框架 DataHandler dh = new DataHandler(new FileDataSource("src/0.jpg")); imagePart.setDataHandler(dh); MimeMultipart mp = new MimeMultipart(); mp.addBodyPart(textPart); mp.addBodyPart(imagePart); mp.setSubType("related");//有关系的 MimeBodyPart textImagePart = new MimeBodyPart(); //将 MimeMultipart 添加到 MimeBodyPart实现附件的发送 textImagePart.setContent(mp); //创建附件部分 MimeBodyPart attachmentPart = new MimeBodyPart(); dh = new DataHandler(new FileDataSource("src/账户.rar")); String filename = dh.getName(); attachmentPart.setDataHandler(dh); //手工设置文件名 防止乱码使用 javaMail里的 MimeUtility进行编码 attachmentPart.setFileName(MimeUtility.encodeText(filename)); //最终的 MimeMultipart MimeMultipart finalMp = new MimeMultipart(); finalMp.addBodyPart(attachmentPart); finalMp.addBodyPart(textImagePart); finalMp.setSubType("mixed"); message.setContent(finalMp); message.saveChanges(); //发送邮件 Transport ts = session.getTransport(); ts.connect("xxx@163.com", "123456"); //密码为授权码不是邮箱的登录密码 ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法 } }
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
刺客信条阴影:贝壳谜语解决方案
3 周前ByDDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前ByDDD
在哪里可以找到原子中的起重机控制钥匙卡
3 周前ByDDD
节省R.E.P.O.解释(并保存文件)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影 - 如何找到铁匠,解锁武器和装甲定制
4 周前ByDDD

热工具

Dreamweaver Mac版
视觉化网页开发工具

记事本++7.3.1
好用且免费的代码编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。