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实现高并发下的抢购、秒杀功能的实例

