java 调用foxmail_java邮件收发功能实现代码

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

准备工作, 环境搭建:

1. 本地搭建一个邮件服务器  易邮服务器,eyoumailserversetup.exe

2. 新建邮箱账号  张三给李四发邮件。

步骤1:    新建域名: 工具, 服务器设置, 单域名框中输入 itcast.com

步骤2:

新建邮箱账号:  [email protected]

[email protected]

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("[email protected]"));

//3.4 接收人

message.setRecipient(RecipientType.TO, new InternetAddress("[email protected]"));

//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("[email protected]");

} 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("[email protected]"));

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("[email protected]");

} 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("[email protected]"));

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)