Java 发送带附件的邮件 上一篇已经讲了如何用 Java 发送一个简单的邮件,然而有时我们发送邮件需要发送文件,我们来看看如何用java 发送带附件的邮件。
【Java|Java 发送邮件(二)】废话不多说,直接上代码:
需要的依赖:
com.sun.mail
javax.mail
1.6.2
javax.activation
activation
1.1.1
代码:
public class MailTest {public static final String SMTP_SERVER = "smtp.163.com";
//SMTP服务器地址public static final String SMTP_PORT = "465";
//请求的端口public static final String ACCOUNT = "*******@163.com";
//验证的用户public static final String PWD = "*************";
//密码@Test
public void test() throws UnsupportedEncodingException, MessagingException {//创建邮件配置
Properties props = new Properties();
props.setProperty("mail.transport.protocol","smtp");
//配置协议
props.setProperty("mail.smtp.host",SMTP_SERVER);
//配置请求的SMTP 服务器地址
props.setProperty("mail.smtp.port",SMTP_PORT);
//配置请求的端口
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.auth","true");
//是否验证
props.setProperty("mail.smtp.ssl.enable","true");
//是否使用SSL//根据邮件配置创建会话,注意 session 别导错包
Session session = Session.getDefaultInstance(props);
//开启debug 模式,可以看到更多详细的日志
session.setDebug(true);
//创建邮件
MimeMessage message = createEmil(session);
//获取传输通道
Transport transport = session.getTransport();
transport.connect(ACCOUNT,PWD);
//连接,并发送邮件
transport.sendMessage(message,message.getAllRecipients());
}private MimeMessage createEmil(Session session) throws UnsupportedEncodingException, MessagingException {
//根据会话创建邮件
MimeMessage msg = new MimeMessage(session);
//设置发送邮件方
msg.setFrom(new InternetAddress(ACCOUNT,"昵称","UTF-8"));
//设置接受邮件方
msg.setRecipient(Message.RecipientType.TO,
new InternetAddress("847707713@qq.com");
//设置邮件标题
msg.setSubject("附件测试","utf-8");
//创建多重消息
Multipart multipart = new MimeMultipart();
//创建消息部分
BodyPart bodyPart = new MimeBodyPart();
bodyPart.setText("发送附件测试");
//设置文本消息部分
multipart.addBodyPart(bodyPart);
//附件部分
bodyPart = new MimeBodyPart();
DataSource source = new FileDataSource("F:/aaa.txt");
bodyPart.setDataHandler(new DataHandler(source));
bodyPart.setFileName("test.txt");
multipart.addBodyPart(bodyPart);
msg.setContent(multipart);
//保存设置
msg.saveChanges();
return msg;
}}
发送邮件附件 与上一节对比可以看出,要加的代码并不是很多。
这里首先需要创建一个 multipart 对象,multipart 对象可以包含多个BodyPart对象,BodyPart可以是文本消息,也可以是附件。
如果要发送多个附件,只需要仿照上面的附件部分代码,更改文件路径即可。
推荐阅读
- 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组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)