JavaMail邮件开发

来源:互联网 发布:淘宝金丝绒连衣裙图片 编辑:程序博客网 时间:2024/04/29 08:23

(api  + 配置)

 

开发中,邮件的应用?

-à 注册,填写生日;  后期系统会自动发送生日祝贺

-à 发货,发货提醒!邮件提醒!

邮件:

1. 发邮件;【程序中如何发邮件!】

2. 收邮件;【很多客户端工具, foxmail

 

 

邮件开发准备:

准备工作, 环境搭建:

1. 本地搭建一个邮件服务器

  -à 易邮服务器,eyoumailserversetup.exe

2. 新建邮箱账号

  张三给李四发邮件。

  步骤1

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

  步骤2

新建邮箱账号:  zhangsan@itcast.com

                  lisi@itcast.com

3. 安装foxmail

配置邮件发送服务器(smtp):  localhost      25

        邮件接收服务器(pop3):  localhost     110

再新建账号,就可以接收邮件了!

 

邮件开发之普通邮件:

JavaMail开发,先引入jar文件:

activation.jar   【如果使用jdk1.6或以上版本,可以不用这个jar文件】

mail.jar       【邮件发送核心包】

 

/**

 * 1. 发送一封普通邮件

 * @author 郭世江

 *

 */

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 郭世江

 *

 */

public class App_2SendWithImg {

// 初始化参数

private static Propertiesprop;

// 发件人

private static InternetAddresssendMan =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("<img src='cid:8.jpg'/>  好哈哈!","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 郭世江

 *

 */

public class App_3ImgAndAtta {

// 初始化参数

private static Propertiesprop;

// 发件人

private static InternetAddresssendMan =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("<img src='cid:8.jpg'/>  好哈哈!","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();

}

}

2 0
原创粉丝点击