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

准备工作, 环境搭建:

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邮件收发功能实现代码相关推荐

  1. java调用wcf_详解JAVA调用WCF服务的示例代码

    这一篇将要解决java中调用WCF的问题,使用的依旧是上一篇中托管在IIS中的WCF服务,本来我是打算用axis来写这篇文章的,可就在我开始之前,无意中发现了在java包中自带的wsimport工具 ...

  2. 【WebRTC】在Android上用NDK编译WebRtc音频增益模块(AGC),降噪(NS),java调用JNI实现功能

    目录 ·········前言 ·········前期工作 ·········编译工作 ·········编码工作(AGC-JAVA) ·········编码工作(AGC-JNI) ·········编 ...

  3. Java调用PHP,跑PHP代码

    java call php and run php code 网上看了许多资料,调用PHP的方法都比较繁琐,php-fpm用起来也不方便,一个比较简单的调用PHP的方法如下. 先在存放着需要运行的PH ...

  4. 记录个js调用浏览器打印功能的代码

    对应的是浏览器鼠标右键打印功能 function printPage() {document.body.innerHTML=document.getElementById('printdiv').in ...

  5. java ftp服务器_Java实现FTP服务器功能实例代码

    FTP(File Transfer Protocol 文件传输协议)是Internet 上用来传送文件的协议.在Internet上通过FTP 服务器可以进行文件的上传(Upload)或下载(Downl ...

  6. java调用百度地图API依据地理位置中文获取经纬度

    百度地图api提供了非常多地图相关的免费接口,有利于地理位置相关的开发,百度地图api首页:http://developer.baidu.com/map/. 博主使用过依据地理依据地理位置中文获取经纬 ...

  7. 使用GraalVM实现java调用python脚本

    背景说明 在很多场景下,我们都有从java调用脚本的功能,常用的有groovy脚本,pyhon脚本和js等.在上篇中,列举了java调用pyhton脚本的几种方案,并最终选取了JEP的方式,但是随着业 ...

  8. Java枚举实现红绿灯功能

    Java枚举实现红绿灯功能 要求 代码实现 运行结果 要求 (1)如果遇到红灯,需要显示 红灯停 (2)如果遇到绿灯,需要显示 绿灯行 (3)如果遇到黄灯,需要显示 黄灯等一等 代码实现 import ...

  9. 使用JNA,让java调用原生代码

    JNA定义: JNA:java Native Access,是SUN公司开发的基于JNI的框架.JNI使得Java可以调用原生的c或者c++代码. JNA与JNI(Java Native Interf ...

最新文章

  1. Kornia开源可微分计算机视觉库,基于Pytorch,GitHub 3000星
  2. lightgbm中的feval参数使用明细
  3. mysql avg 报错_MySQL报错汇总
  4. 计算机七年级书籍段落,七年级下册片段.doc
  5. php 开启命令模式,如何启用PhpStorm中的命令行工具
  6. c++ primer 6.5.1节练习答案
  7. UVa 1399 Puzzle
  8. GitHub的提醒邮件改进
  9. c语言求婚代码大全,求一个C语言表白的代码
  10. Android 直播调研
  11. 桌面的计算机图标误删了怎么恢复,删除桌面图标-如何恢复桌面图标不小心将某个程序的桌面图标给删了,怎么恢复呢 爱问知识人...
  12. 旧BugkuCTF—部分wp
  13. 精进——如何成为很厉害的人(采铜)
  14. [angular1.6]Error: transition superseded ui-router 在angular1.6 报错误问题解决
  15. DBeaver 驱动安装
  16. LLL —— SVP渐进算法(简记)
  17. c语言next函数,详谈全排列next_permutation() 函数的用法(推荐)
  18. 转: 测试工具LoadRunner和OpenSTA比较分析
  19. 安全(Security)设计原则(1)
  20. SD 协议与协议栈源码分析(SD 内存卡)

热门文章

  1. 基础才是重中之重~开发人员应用学会用throw
  2. Linux Software RAID的rebuild速度。
  3. hive表定义(3种方式)
  4. [转载] spring mvc自定义int枚举转换器
  5. 标志寄存器_访问标志寄存器,并与寄存器B |交换标志寄存器F的内容 8085微处理器...
  6. 线性代数向量内积_向量的外积| 使用Python的线性代数
  7. Java ListResourceBundle getKeys()方法与示例
  8. python mpi开销_GitHub - hustpython/MPIK-Means
  9. lvs负载均衡—DR模式
  10. java容器详解_详解Java 容器(第①篇)——概览