DebugEN
科技森
专注于Java开发~每天都会更新文章~
  1. 首页
  2. Java
  3. 正文

[原创] 如何使用java(javamail)发送带附件的邮件

2021年02月22日 2003点热度 0人点赞 0条评论 作者: kejisen

前言

本文将介绍如何使用JavaMail API 发送带有单个和多个附件的电子邮件。

添加maven依赖

首先我们需要在pom.xml中添加如下的maven依赖:

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.5.0-b01</version>
</dependency>

编码

首先,我们需要使用host、端口,用户名和密码来创建一个Session对象。如下所示:

// 收件人电子邮箱
String to = "[email protected]";
// 发件人电子邮箱
String from = "[email protected]";
// 指定发送邮件的主机为 localhost
String host = "smtp.sample.com";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);

现在我们有了一个Session对象,接下来需要创建MimeMessage和MimeBodyPart对象。如下所示:

Message message = new MimeMessage(session); 
message.setFrom(new InternetAddress(from)); 
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); 
message.setSubject("这里是邮件标题"); 
BodyPart messageBodyPart = new MimeBodyPart(); 
messageBodyPart.setText("这里是邮件内容");

上面是一个普通的文本邮件,
现在,我们需要再添加一个MimeBodyPart以在邮件中添加附件:

MimeBodyPart attachmentPart = new MimeBodyPart();
attachmentPart.attachFile(new File("C:\\文件.txt"));

Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
multipart.addBodyPart(attachmentPart);

在发送邮件时,将multipart放入content中,如下所示:

message.setContent(multipart);
Transport.send(message);

如果你的附件包含多个附件,只需添加另一个MimeBodyPart即可。

总结

本文介绍了如何使用javamail api创建一个包含了一个或者多个附件文件的邮件并发送的相关代码示例。

标签: java mail
最后更新:2021年03月03日

kejisen

保持饥渴的专注,追求最佳的品质

点赞
< 上一篇
下一篇 >

文章评论

取消回复
最新 热点 随机
最新 热点 随机
【原创】记录一次失败的折腾——使用jkeymaster实现的按键监听 【原创】这些年我用过的IDEA插件 【原创】在windows上使用VNC远程连接linux桌面 我在RxJava使用线程池时遇到的问题 [原创文章] Swagger生成pdf格式的接口文档 [个人翻译]Java HTTP工具类的客户端证书认证 [原创] 如何从 Git 的提交历史记录中删除大文件 [翻译] 创建一个只读的Repository接口(Spring Data) [翻译] 反射的用法——用Java调用私有方法 Java 虚拟机最多可以支持多少个线程? 排查Hibernate的慢查询日志–这是查找慢查询的最简单方法 [翻译] 使用apache poi在excel文件中插入一行数据 [翻译] 在Spring 中@EntityScan与@ComponentScan注解有什么区别 [原创] 从QQ音乐网页版扒歌词的补充说明 [原创] 介绍java maven项目的多种打包方式 原创——在Java中生成随机数 将G1垃圾回收的内存使用量减少20%(翻译) [原创] java8 lambda表达式的toMap造成的空指针异常 [原创] 在Spring Boot中使用CommandLineRunner来在启动时执行代码 [转载] Kafka 节点重启失败导致数据丢失的分析排查与解决之道
[原创]javaslang(vavr.io)中Try的使用 中通Elasticsearch集群运维实践 在Java中生成随机的日期 java maven项目的几种打包方式 [原创] 如何从 Git 的提交历史记录中删除大文件 [原创] 如何使用okhttp发起application/json类型的请求 [翻译] 使用apache poi在excel文件中插入一行数据 [原创] 关于Java的Base64编码 [原创文章] Swagger生成pdf格式的接口文档 【原创】这些年我用过的IDEA插件 [翻译] 在Spring 中@EntityScan与@ComponentScan注解有什么区别 【原创】在windows上使用VNC远程连接linux桌面 我在RxJava使用线程池时遇到的问题 [原创] 从QQ音乐网页版扒歌词的补充说明 如何设置Servlet的session超时时间 [翻译] 创建一个只读的Repository接口(Spring Data) [原创] Spring Boot使用CommandLineRunner Spring Boot项目修改Tomcat端口号 【原创】记录一次失败的折腾——使用jkeymaster实现的按键监听 Linux截图软件推荐-flameshot
标签聚合
json spring elasticsearch linux qq音乐 maven 歌词 springboot base64 java

COPYRIGHT © 2020 Kejisen. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS