java 调用foxmail_java邮件收发功能实现代码
本文实例为大家分享了邮件收发功能的具体实现代码,供大家参考,具体内容如下
准备工作, 环境搭建:
1. 本地搭建一个邮件服务器 易邮服务器,eyoumailserversetup.exe
2. 新建邮箱账号 张三给李四发邮件。
步骤1: 新建域名: 工具, 服务器设置, 单域名框中输入 itcast.com
步骤2:
新建邮箱账号: zhangsan@itcast.com
lisi@itcast.com
3. 安装foxmail
配置邮件发送服务器(smtp): localhost 25
邮件接收服务器(pop3): localhost 110
再新建账号,就可以接收邮件了!
注意
如果是web项目,因为javaee自带的有邮件功能,可能存在问题!
我们要用自己的mail.jar文件功能! 需要删除javaee中mail包!
使用:
JavaMail开发,先引入jar文件:
activation.jar 【如果使用jdk1.6或以上版本,可以不用这个jar文件】
mail.jar 【邮件发送核心包】
/**
* 1. 发送一封普通邮件
* @author Jie.Yuan
*
*/
public class App_SendMail {
@Test
public void testSend() throws Exception {
//0. 邮件参数
Properties prop = new Properties();
prop.put("mail.transport.protocol", "smtp"); // 指定协议
prop.put("mail.smtp.host", "localhost"); // 主机 stmp.qq.com
prop.put("mail.smtp.port", 25); // 端口
prop.put("mail.smtp.auth", "true"); // 用户密码认证
prop.put("mail.debug", "true"); // 调试模式
//1. 创建一个邮件的会话
Session session = Session.getDefaultInstance(prop);
//2. 创建邮件体对象 (整封邮件对象)
MimeMessage message = new MimeMessage(session);
//3. 设置邮件体参数:
//3.1 标题
message.setSubject("我的第一封邮件 ");
//3.2 邮件发送时间
message.setSentDate(new Date());
//3.3 发件人
message.setSender(new InternetAddress("zhangsan@itcast.com"));
//3.4 接收人
message.setRecipient(RecipientType.TO, new InternetAddress("lisi@itcast.com"));
//3.5内容
message.setText("你好,已经发送成功! 正文...."); // 简单纯文本邮件
message.saveChanges(); // 保存邮件(可选)
//4. 发送
Transport trans = session.getTransport();
trans.connect("zhangsan", "888");
// 发送邮件
trans.sendMessage(message, message.getAllRecipients());
trans.close();
}
}
带图片
/**
* 带图片资源的邮件
* @author Jie.Yuan
*
*/
public class App_2SendWithImg {
// 初始化参数
private static Properties prop;
// 发件人
private static InternetAddress sendMan = null;
static {
prop = new Properties();
prop.put("mail.transport.protocol", "smtp"); // 指定协议
prop.put("mail.smtp.host", "localhost"); // 主机 stmp.qq.com
prop.put("mail.smtp.port", 25); // 端口
prop.put("mail.smtp.auth", "true"); // 用户密码认证
prop.put("mail.debug", "true"); // 调试模式
try {
sendMan = new InternetAddress("zhangsan@itcast.com");
} catch (AddressException e) {
throw new RuntimeException(e);
}
}
@Test
public void testSend() throws Exception {
// 1. 创建邮件会话
Session session = Session.getDefaultInstance(prop);
// 2. 创建邮件对象
MimeMessage message = new MimeMessage(session);
// 3. 设置参数:标题、发件人、收件人、发送时间、内容
message.setSubject("带图片邮件");
message.setSender(sendMan);
message.setRecipient(RecipientType.TO, new InternetAddress("lisi@itcast.com"));
message.setSentDate(new Date());
/***************设置邮件内容: 多功能用户邮件 (related)*******************/
// 4.1 构建一个多功能邮件块
MimeMultipart related = new MimeMultipart("related");
// 4.2 构建多功能邮件块内容 = 左侧文本 + 右侧图片资源
MimeBodyPart content = new MimeBodyPart();
MimeBodyPart resource = new MimeBodyPart();
// 设置具体内容: a.资源(图片)
String filePath = App_2SendWithImg.class.getResource("8.jpg").getPath();
DataSource ds = new FileDataSource(new File(filePath));
DataHandler handler = new DataHandler(ds);
resource.setDataHandler(handler);
resource.setContentID("8.jpg"); // 设置资源名称,给外键引用
// 设置具体内容: b.文本
content.setContent(" 好哈哈!", "text/html;charset=UTF-8");
related.addBodyPart(content);
related.addBodyPart(resource);
/*******4.3 把构建的复杂邮件快,添加到邮件中********/
message.setContent(related);
// 5. 发送
Transport trans = session.getTransport();
trans.connect("zhangsan", "888");
trans.sendMessage(message, message.getAllRecipients());
trans.close();
}
}
图片+附件
/**
* 3. 带图片资源以及附件的邮件
* @author Jie.Yuan
*
*/
public class App_3ImgAndAtta {
// 初始化参数
private static Properties prop;
// 发件人
private static InternetAddress sendMan = null;
static {
prop = new Properties();
prop.put("mail.transport.protocol", "smtp"); // 指定协议
prop.put("mail.smtp.host", "localhost"); // 主机 stmp.qq.com
prop.put("mail.smtp.port", 25); // 端口
prop.put("mail.smtp.auth", "true"); // 用户密码认证
prop.put("mail.debug", "true"); // 调试模式
try {
sendMan = new InternetAddress("zhangsan@itcast.com");
} catch (AddressException e) {
throw new RuntimeException(e);
}
}
@Test
public void testSend() throws Exception {
// 1. 创建邮件会话
Session session = Session.getDefaultInstance(prop);
// 2. 创建邮件对象
MimeMessage message = new MimeMessage(session);
// 3. 设置参数:标题、发件人、收件人、发送时间、内容
message.setSubject("带图片邮件");
message.setSender(sendMan);
message.setRecipient(RecipientType.TO, new InternetAddress("lisi@itcast.com"));
message.setSentDate(new Date());
/*
* 带附件(图片)邮件开发
*/
// 构建一个总的邮件块
MimeMultipart mixed = new MimeMultipart("mixed");
// ---> 总邮件快,设置到邮件对象中
message.setContent(mixed);
// 左侧: (文本+图片资源)
MimeBodyPart left = new MimeBodyPart();
// 右侧: 附件
MimeBodyPart right = new MimeBodyPart();
// 设置到总邮件块
mixed.addBodyPart(left);
mixed.addBodyPart(right);
/******附件********/
String attr_path = this.getClass().getResource("a.docx").getPath();
DataSource attr_ds = new FileDataSource(new File(attr_path));
DataHandler attr_handler = new DataHandler(attr_ds);
right.setDataHandler(attr_handler);
right.setFileName("a.docx");
/***************设置邮件内容: 多功能用户邮件 (related)*******************/
// 4.1 构建一个多功能邮件块
MimeMultipart related = new MimeMultipart("related");
// ----> 设置到总邮件快的左侧中
left.setContent(related);
// 4.2 构建多功能邮件块内容 = 左侧文本 + 右侧图片资源
MimeBodyPart content = new MimeBodyPart();
MimeBodyPart resource = new MimeBodyPart();
// 设置具体内容: a.资源(图片)
String filePath = App_3ImgAndAtta.class.getResource("8.jpg").getPath();
DataSource ds = new FileDataSource(new File(filePath));
DataHandler handler = new DataHandler(ds);
resource.setDataHandler(handler);
resource.setContentID("8.jpg"); // 设置资源名称,给外键引用
// 设置具体内容: b.文本
content.setContent(" 好哈哈!", "text/html;charset=UTF-8");
related.addBodyPart(content);
related.addBodyPart(resource);
// 5. 发送
Transport trans = session.getTransport();
trans.connect("zhangsan", "888");
trans.sendMessage(message, message.getAllRecipients());
trans.close();
}
}
以上就是本文的全部内容,希望对大家学习java程序设计有所帮助。
java 调用foxmail_java邮件收发功能实现代码相关推荐
- java调用wcf_详解JAVA调用WCF服务的示例代码
这一篇将要解决java中调用WCF的问题,使用的依旧是上一篇中托管在IIS中的WCF服务,本来我是打算用axis来写这篇文章的,可就在我开始之前,无意中发现了在java包中自带的wsimport工具 ...
- 【WebRTC】在Android上用NDK编译WebRtc音频增益模块(AGC),降噪(NS),java调用JNI实现功能
目录 ·········前言 ·········前期工作 ·········编译工作 ·········编码工作(AGC-JAVA) ·········编码工作(AGC-JNI) ·········编 ...
- Java调用PHP,跑PHP代码
java call php and run php code 网上看了许多资料,调用PHP的方法都比较繁琐,php-fpm用起来也不方便,一个比较简单的调用PHP的方法如下. 先在存放着需要运行的PH ...
- 记录个js调用浏览器打印功能的代码
对应的是浏览器鼠标右键打印功能 function printPage() {document.body.innerHTML=document.getElementById('printdiv').in ...
- java ftp服务器_Java实现FTP服务器功能实例代码
FTP(File Transfer Protocol 文件传输协议)是Internet 上用来传送文件的协议.在Internet上通过FTP 服务器可以进行文件的上传(Upload)或下载(Downl ...
- java调用百度地图API依据地理位置中文获取经纬度
百度地图api提供了非常多地图相关的免费接口,有利于地理位置相关的开发,百度地图api首页:http://developer.baidu.com/map/. 博主使用过依据地理依据地理位置中文获取经纬 ...
- 使用GraalVM实现java调用python脚本
背景说明 在很多场景下,我们都有从java调用脚本的功能,常用的有groovy脚本,pyhon脚本和js等.在上篇中,列举了java调用pyhton脚本的几种方案,并最终选取了JEP的方式,但是随着业 ...
- Java枚举实现红绿灯功能
Java枚举实现红绿灯功能 要求 代码实现 运行结果 要求 (1)如果遇到红灯,需要显示 红灯停 (2)如果遇到绿灯,需要显示 绿灯行 (3)如果遇到黄灯,需要显示 黄灯等一等 代码实现 import ...
- 使用JNA,让java调用原生代码
JNA定义: JNA:java Native Access,是SUN公司开发的基于JNI的框架.JNI使得Java可以调用原生的c或者c++代码. JNA与JNI(Java Native Interf ...
最新文章
- Kornia开源可微分计算机视觉库,基于Pytorch,GitHub 3000星
- lightgbm中的feval参数使用明细
- mysql avg 报错_MySQL报错汇总
- 计算机七年级书籍段落,七年级下册片段.doc
- php 开启命令模式,如何启用PhpStorm中的命令行工具
- c++ primer 6.5.1节练习答案
- UVa 1399 Puzzle
- GitHub的提醒邮件改进
- c语言求婚代码大全,求一个C语言表白的代码
- Android 直播调研
- 桌面的计算机图标误删了怎么恢复,删除桌面图标-如何恢复桌面图标不小心将某个程序的桌面图标给删了,怎么恢复呢 爱问知识人...
- 旧BugkuCTF—部分wp
- 精进——如何成为很厉害的人(采铜)
- [angular1.6]Error: transition superseded ui-router 在angular1.6 报错误问题解决
- DBeaver 驱动安装
- LLL —— SVP渐进算法(简记)
- c语言next函数,详谈全排列next_permutation() 函数的用法(推荐)
- 转: 测试工具LoadRunner和OpenSTA比较分析
- 安全(Security)设计原则(1)
- SD 协议与协议栈源码分析(SD 内存卡)
热门文章
- 基础才是重中之重~开发人员应用学会用throw
- Linux Software RAID的rebuild速度。
- hive表定义(3种方式)
- [转载] spring mvc自定义int枚举转换器
- 标志寄存器_访问标志寄存器,并与寄存器B |交换标志寄存器F的内容 8085微处理器...
- 线性代数向量内积_向量的外积| 使用Python的线性代数
- Java ListResourceBundle getKeys()方法与示例
- python mpi开销_GitHub - hustpython/MPIK-Means
- lvs负载均衡—DR模式
- java容器详解_详解Java 容器(第①篇)——概览