笔记:JavaMail邮件
来源:互联网 发布:什么叫网络故障诊断 编辑:程序博客网 时间:2024/05/17 03:42
邮件开发准备:
准备工作, 环境搭建:
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 Jie.Yuan * */public class App_SendMail {@Testpublic void testSend() throws Exception {//0. 邮件参数Properties prop = new Properties();prop.put("mail.transport.protocol", "smtp");// 指定协议prop.put("mail.smtp.host", "localhost");// 主机 stmp.qq.comprop.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.comprop.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);}}@Testpublic 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 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.comprop.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);}}@Testpublic 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();}}
注意
如果是web项目,因为javaee自带的有邮件功能,可能存在问题!
我们要用自己的mail.jar文件功能! 需要删除javaee中mail包!
0 0
- 笔记:JavaMail邮件
- JavaMail学习笔记2——JavaMail 发送邮件
- JavaMail学习笔记3——JavaMail 接收邮件
- JavaMail学习笔记——JavaMail 接收邮件
- JavaMail学习笔记3——JavaMail 接收邮件
- JavaMail学习笔记——JavaMail 接收邮件
- JavaMail学习笔记(六)、搜索邮件
- JavaMail学习笔记(六)、搜索邮件
- JavaMail学习笔记(六)搜索邮件
- JavaMail学习笔记-2(HTML格式的邮件发送)
- android利用javamail发送含有附件的邮件 问题笔记
- android利用javamail发送含有附件的邮件 问题笔记
- javamail开发邮件【发送邮件】
- JAVAMAIL邮件服务器
- javamail发送邮件
- 用javamail 发送邮件
- javamail发送邮件--sendmail
- 用javamail发邮件
- 暑期dp46道(43)--HDOJ 1159 最长公共子序列(可不连续)
- 对数组的验证
- DOMContentLoaded事件与load事件
- JAVA 日期处理
- epoll event触发问题
- 笔记:JavaMail邮件
- 安卓常用的第三方框架
- synchronized用法与介绍
- Java内存模型总结
- 【IOS学习】理解UIScrollView
- 配置wifi为AP模式 -- 接入点hostapd基本配置
- Android系统HAL层原理及编程注意事项
- mysql group_contact 问题
- nil/Nil/NULL/NSNull的区别