JavaMail实现发送邮件功能

发布时间 - 2026-01-11 02:56:32    点击率:

本文实例为大家分享了JavaMail实现发送邮件功能的具体代码,供大家参考,具体内容如下

用java发邮件,必须要导入新的包

       mail.jar – 发邮件的核心包

       activation.jar – 对用户和密码加密.

在mail.jar中有三个核心类:

       Javax.mail.Session – 是指与邮件服务器会话。整个项目中只要一个就可以了.

       Javax.mail.Message(接口)  - 准备发送数据信息。

                      MimeMessage - 可以设置类型的数据信息。

       Transport – 它拥有一个方法可以发送Message。

@Test
 public void sendMail() throws Exception{
  //1,声明properties对象放信息
  Properties props = new Properties();
  //设置连接哪一台服务器
  props.setProperty("mail.host", "smtp.163.com");
  //设置是否认证:
  props.setProperty("mail.smtp.auth", "true");
  
  //2,声明用户名和密码
  Authenticator auth = new Authenticator(){
   //返回用户名和密码对象
   @Override
   protected PasswordAuthentication getPasswordAuthentication() {
    PasswordAuthentication pa = new PasswordAuthentication("xxxxx@163.com", "123456");
    return pa;
   }
  };
  //3,获取session对象
  Session session = Session.getDefaultInstance(props, auth);
  //设置session为调试模式
  session.setDebug(true);
  //4,声明信息
  MimeMessage mm1 = new MimeMessage(session);
  //5,设置发件人信息
  Address form = new InternetAddress("xxxxx@163.com"); 
  mm1.setFrom(form);
  //6,设置收件人 ,RecipientType:发送,抄送,密送 类型
  mm1.setRecipient(RecipientType.TO, new InternetAddress("xxx@qq.com"));
  //mm1.setRecipient(RecipientType.CC, new InternetAddress(""));//抄送
 
  //7,设置主题
  mm1.setSubject("拉面学习通知");
  String cont = "请点击 <a href='http://www.fsy158.com/news/31_207'>官网新闻</a>查看祝您发财";
  mm1.setContent(cont, "text/html;charset=UTF-8");
  
  //8,发送
  Transport.send(mm1);
 
 }

其中的mimeType可是text/plain纯文本。

发送附件:

@Test
 public void sendMailWithFile() throws Exception{
 Properties ps = new Properties();
 ps.setProperty("mail.host", "smtp.163.com");
 ps.setProperty("mail.smtp.auth", "true");
 
 Authenticator auth = new Authenticator(){
  @Override
  protected PasswordAuthentication getPasswordAuthentication() {
  return new PasswordAuthentication("xxx@163.com","xxx.");
  } 
 };
 Session session = Session.getDefaultInstance(ps, auth);
 session.setDebug(true);
 MimeMessage msg = new MimeMessage(session);
 Address address = new InternetAddress("xxx@163.com");
 msg.setFrom(address);
 //发送给
 msg.setRecipient(RecipientType.TO, new InternetAddress("xxx@qq.com"));
 msg.setRecipient(RecipientType.BCC, new InternetAddress("xxx@qq.com"));//密送
 msg.setRecipient(RecipientType.CC, new InternetAddress("xxx@qq.com"));//抄送
 msg.setSubject("$激情小视频*免费观看");
 
 //声明多部件处理
 MimeMultipart mm = new MimeMultipart();
 
 MimeBodyPart body1 = new MimeBodyPart();
 //设置附件
 DataSource ds1 = new FileDataSource(new File("./img/a.jpg"));
 DataHandler dh1 = new DataHandler(ds1);
 body1.setDataHandler(dh1);
 //必须设置名称
 body1.setFileName(MimeUtility.encodeText("|美女|.jpg"));
 
 MimeBodyPart body2 = new MimeBodyPart();
 DataSource ds2 = new FileDataSource(new File("./img/b.jpg"));
 DataHandler dh2 = new DataHandler(ds2);
 body2.setDataHandler(dh2);
 body2.setFileName(MimeUtility.encodeText("|美女|2.jpg"));
 
 MimeBodyPart body3 = new MimeBodyPart();
 DataSource ds3 = new FileDataSource(new File("./img/m.mp3"));
 DataHandler dh3 = new DataHandler(ds3);
 body3.setDataHandler(dh3);
 body3.setFileName(MimeUtility.encodeText("*.mp3"));

 //添加body到mm
 mm.addBodyPart(body1);
 mm.addBodyPart(body2);
 mm.addBodyPart(body3);
 
 msg.setContent(mm);

 //设置发送日期
 Calendar c = Calendar.getInstance();
 c.add(Calendar.DATE, -5);
 msg.setSentDate(c.getTime());

 //发送
 Transport.send(msg);
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# JavaMail  # 发送邮件  # Spring Boot中利用JavaMailSender发送邮件的方法示例(附源码)  # 基于SSM框架+Javamail发送邮件的代码实例  # 基于java使用JavaMail发送邮件  # 使用JavaMail发送邮件保证成功的方法  # JavaMail入门教程之发送邮件(3)  # JavaWeb中使用JavaMail实现发送邮件功能实例详解  # Java使用JavaMail发送邮件的方法  # Java基于JavaMail实现向QQ邮箱发送邮件  # 如何使用JavaMail发送邮件  # JavaWeb中JavaMail创建邮件和发送邮件  # 发邮件  # 请点击  # 是指  # 中有  # 大家分享  # 具体内容  # 官网  # 祝您  # 免费观看  # 大家多多  # 邮件服务器  # 就可以  # 发送给  # 小视频  # 必须要  # Authenticator  # true  # properties 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  JS去除重复并统计数量的实现方法  如何在IIS中新建站点并解决端口绑定冲突?  网站制作壁纸教程视频,电脑壁纸网站?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  如何在新浪SAE免费搭建个人博客?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  jQuery中的100个技巧汇总  Laravel怎么上传文件_Laravel图片上传及存储配置  详解jQuery中的事件  iOS验证手机号的正则表达式  香港服务器租用每月最低只需15元?  详解jQuery中基本的动画方法  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  html5的keygen标签为什么废弃_替代方案说明【解答】  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  做企业网站制作流程,企业网站制作基本流程有哪些?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  独立制作一个网站多少钱,建立网站需要花多少钱?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何在服务器上三步完成建站并提升流量?  如何做网站制作流程,*游戏网站怎么搭建?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  高端建站如何打造兼具美学与转化的品牌官网?  Android GridView 滑动条设置一直显示状态(推荐)  Python文件异常处理策略_健壮性说明【指导】  如何快速重置建站主机并恢复默认配置?  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  微信小程序 require机制详解及实例代码  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  javascript日期怎么处理_如何格式化输出  利用 Google AI 进行 YouTube 视频 SEO 描述优化  *服务器网站为何频现安全漏洞?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何在Windows虚拟主机上快速搭建网站?  简历在线制作网站免费版,如何创建个人简历?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel怎么在Blade中安全地输出原始HTML内容  如何快速登录WAP自助建站平台?  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  php结合redis实现高并发下的抢购、秒杀功能的实例