Java|Java 发送邮件(二)

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可以是文本消息,也可以是附件。
如果要发送多个附件,只需要仿照上面的附件部分代码,更改文件路径即可。

    推荐阅读