文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java如何实现带附件的邮件发送功能

2023-05-31 06:27

关注

这篇文章主要讲解了Java如何实现带附件的邮件发送功能,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

需要导入mail.jar、activation.jar这两个邮件发送的jar包,可在网上搜索并下载

需要设置相关邮箱服务器,我用的是QQ邮箱,操作如下所示:开启相关服务,并生产授权码(这个代码中会用到)。

Java如何实现带附件的邮件发送功能

代码如下所示:

package com.ecg.controller;  import java.io.UnsupportedEncodingException; import java.security.GeneralSecurityException; import java.util.Properties;  import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.Authenticator; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.PasswordAuthentication; 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;  import com.sun.mail.util.MailSSLSocketFactory;   public class mailtest {    public static void main(String [] args) throws GeneralSecurityException, UnsupportedEncodingException  {  // 收件人电子邮箱  String to = "2528621082@qq.com";   // 发件人电子邮箱  String from = "1135237317@qq.com";   // 指定发送邮件的主机为 smtp.qq.com  String host = "smtp.qq.com"; //QQ 邮件服务器   // 获取系统属性  Properties properties = System.getProperties();   // 设置邮件服务器  properties.setProperty("mail.smtp.host", host);   properties.put("mail.smtp.auth", "true");  MailSSLSocketFactory sf = new MailSSLSocketFactory();  sf.setTrustAllHosts(true);  properties.put("mail.smtp.ssl.enable", "true");  properties.put("mail.smtp.ssl.socketFactory", sf);  // 获取默认session对象  Session session = Session.getDefaultInstance(properties,new Authenticator(){  public PasswordAuthentication getPasswordAuthentication()  { //qq邮箱服务器账户、第三方登录授权码  return new PasswordAuthentication("1135237317@qq.com", "dgahhkkjrtgafejj"); //发件人邮件用户名、密码  }  });   try{  // 创建默认的 MimeMessage 对象  MimeMessage message = new MimeMessage(session);   // Set From: 头部头字段  message.setFrom(new InternetAddress(from));   // Set To: 头部头字段  message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));   // Set Subject: 主题文字  message.setSubject("家医康心电诊断结果");   // 创建消息部分  BodyPart messageBodyPart = new MimeBodyPart();   // 消息  messageBodyPart.setText("233333333333333");   // 创建多重消息  Multipart multipart = new MimeMultipart();   // 设置文本消息部分  multipart.addBodyPart(messageBodyPart);   // 附件部分  messageBodyPart = new MimeBodyPart();  //设置要发送附件的文件路径  String filename = "C:/Users/下雨天-lalala/Desktop/家医康心电图/十二导联同步心电图-.png";  DataSource source = new FileDataSource(filename);  messageBodyPart.setDataHandler(new DataHandler(source));   //messageBodyPart.setFileName(filename);  //处理附件名称中文(附带文件路径)乱码问题  messageBodyPart.setFileName(MimeUtility.encodeText(filename));  multipart.addBodyPart(messageBodyPart);   // 发送完整消息  message.setContent(multipart );   // 发送消息  Transport.send(message);  System.out.println("Sent message successfully....");  }catch (MessagingException mex) {  mex.printStackTrace();  }  } } 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯