Java Mail 发送邮件(带附件)简单示例
2016-10-19 16:28
411 查看
背景
最近项目中涉及到发送邮件功能,也参照了很多学习资料,现将Demo例子分享一下,当作记录,也使更多人能更快使用.
本篇不涉及原理内容,如果有需要,后续补充讨论.
所需jar包
mail-1.4.jar
学习内容
发送邮件(带附件)
进入正题
实现java发送邮件的过程大体有以下几步:
1. 准备一个properties文件,该文件用于存放SMTP服务器地址等参数。
2. 利用properties创建一个Session对象
3. 利用Session创建Message对象,然后设置邮件主题,收件人及正文等信息
4. 利用Transport对象发送邮件
SHOW YOU MY CODE
另外还有一个实体验证类
最后查看效果图:
示例中,需要在E盘下创建一个test.txt文本,测试的同学请将邮箱地址配置成自己的邮箱,
后续补充内容
1.采用Freemarker 将邮件正文模板化
2.支持批量发送
最近项目中涉及到发送邮件功能,也参照了很多学习资料,现将Demo例子分享一下,当作记录,也使更多人能更快使用.
本篇不涉及原理内容,如果有需要,后续补充讨论.
所需jar包
mail-1.4.jar
学习内容
发送邮件(带附件)
进入正题
实现java发送邮件的过程大体有以下几步:
1. 准备一个properties文件,该文件用于存放SMTP服务器地址等参数。
2. 利用properties创建一个Session对象
3. 利用Session创建Message对象,然后设置邮件主题,收件人及正文等信息
4. 利用Transport对象发送邮件
SHOW YOU MY CODE
public static void main(String[] args) throws Exception{ // 邮件主题 String subject = "邮件Demo"; // 文件存放路径 String filePath ="e:\\test.txt"; //1. 用于存放 SMTP 服务器地址等参数 Properties properties = new Properties(); // 主机地址 properties.setProperty("mail.smtp.host", "主机地址"); // 邮件协议 properties.setProperty("mail.transport.protocol", "smtp"); // 认证 properties.setProperty("mail.smtp.auth", "true"); // 端口 properties.setProperty("mail.smtp.port", "25"); // 使用JavaMail发送邮件的5个步骤 // 2. 创建session Session session = Session.getDefaultInstance(properties, new MyAuthenticator("发件人账号", "发件人密码")); // 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态 session.setDebug(true); // 3. 创建邮件 // 创建邮件对象 MimeMessage message = new MimeMessage(session); // 邮件的标题 message.setSubject(subject); // 邮件发送日期 message.setSentDate(new Date()); // 指明邮件的发件人 message.setFrom(new InternetAddress("指明邮件发件人邮箱")); // 指明邮件的收件人 message.setRecipient(Message.RecipientType.TO, new InternetAddress("收件人邮箱", "别名")); // 指明邮件的抄送人 message.setRecipient(Message.RecipientType.CC, new InternetAddress("收件人邮箱", "别名")); // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件 Multipart multipart = new MimeMultipart(); // 添加邮件正文 BodyPart contentBodyPart = new MimeBodyPart(); // 邮件内容 String result = "Hello World!"; contentBodyPart.setContent(result, "text/html;charset=UTF-8"); multipart.addBodyPart(contentBodyPart); // 添加附件 if (filePath != null && !"".equals(filePath)) { BodyPart attachmentBodyPart = new MimeBodyPart(); // 根据附件路径获取文件, FileDataSource dataSource = new FileDataSource(filePath); attachmentBodyPart.setDataHandler(new DataHandler(dataSource)); //MimeUtility.encodeWord可以避免文件名乱码 attachmentBodyPart.setFileName(MimeUtility.encodeWord(dataSource.getFile().getName())); multipart.addBodyPart(attachmentBodyPart); } // 邮件的文本内容 message.setContent(multipart); // 4. 发送邮件,Transport每次发送成功程序帮忙关闭 Transport.send(message, message.getAllRecipients()); }
另外还有一个实体验证类
最后查看效果图:
示例中,需要在E盘下创建一个test.txt文本,测试的同学请将邮箱地址配置成自己的邮箱,
后续补充内容
1.采用Freemarker 将邮件正文模板化
2.支持批量发送
相关文章推荐
- 基于TClientSocket简单模拟需要验证的SMTP邮件发送附件(C++Builder)
- java Mail发送附件邮件
- Java Mail 发送附件的邮件
- .net SMTP发送Email邮件且可带附件示例
- loner_li web版 简单的发送邮件功能实现(带上传附件)
- 超简单的Java定时发送带附件邮件
- Java Mail实现带附件的邮件发送
- 内容主题windows下简单的vbscript自动发送邮件--带附件
- windows下简单的vbscript自动发送邮件--带附件
- Python 发送邮件包含附件报表示例
- 简单 java mail 在 jsp 中发送邮件
- C# 发送邮件【简单示例-源码】
- asp.net使用smtp协议实现简单的发送邮件(支持附件)
- 基于TClientSocket简单模拟需要验证的SMTP邮件发送附件(C++Builder)
- asp.net带附件功能的简单发送邮件
- java mail发送邮件可群发并带附件
- javamail发送邮件简单示例
- 用javamail发送邮件(带附件)的简单实例
- Android简单发送邮件(可带附件)
- python发送邮件简单示例