Java发送邮件
来源:互联网 发布:东航两飞机险相撞知乎 编辑:程序博客网 时间:2024/05/18 02:01
首先是要导包mail.jar,如果是JDK1.6(不含1.6)以下的版本,还要导入activation.jar,这两个包可以自行下载,也可以+qq:3393055725获取,文章有任何不清楚的地方也可qq聊。。。
java工程发送邮件和javaweb工程发送邮件在导包时有点小区别:
如果是java工程,直接导包就可以了,但是如果是javaweb工程,mail.jar可能会与javaee包中的mail包冲突,这时候可以删掉这个文件。
分三种情况介绍吧:
发送普通文本邮件、发送含图片的邮件、发送含附件的邮件
一、发送普通文本邮件:
public class TextMail{ public void sendMail() throws Exception{ // 配置邮件参数 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"); // 调试模式 // 创建邮件会话 Session session = Session.getDefaultInstance(prop); // 创建邮件体对象 MimeMessage message = new MimeMessage(session); // 设置邮件体参数(标题、发送时间、发送人、接收人、邮件内容) message.setSubject("标题"); message.setSendDate(new Date()); message.setSender(new InternetAddress("3393055725@qq.com")); message.setRecipient(Recipient.To,new InternetAddress("cat_pp93@163.com")); message.setText("邮件内容"); // 如果是设置超链接等html内容 message.setContent("<a href='www.baidu.com'>百度</a>","text/html,charset=UTF-8"); // 发送邮件 Transport trans = new Transport(); trans.connect("******","******"); // 发件人的账号密码 trans.sendMessage(message,message.getAllRecipients()); trans.close(); }}
二、发送带图片的邮件
// 只修改设置邮件体内容的部分// 构建多功能邮件块relatedMimeMultiPart related = new MimeMultipart("related");// 构建邮件块内容MimeBodyPart textContent = new MimeBodyPart();MimeBodyPart imgContent = new MimeBodyPart();// 设置文本内容textContent.setContent("textContent");// 设置图片内容// 获取图片内容开始 // 如果记不住可以倒着写,需要什么参数在上一步创建参数 String path = TextMail.class.getResource("007.jpg").getPath(); DataSource dataSource = new DataSource(new File(path)); DataHandler dataHandler = new DataHandler(dataSource); imgContent.setDataHandler(dataHandler);// 获取图片内容结束// 设置图片名称,如果html内容需要时候使用imgContent.setContentId("007");textContent.setContent("<img src='cid:007' />","text/html,charset=UTF-8");//cid是固定写法related.addBodyPart(textContent);related.addBodyPart(imgContent);message.setContent(related);// 发送邮件……
三、发送带附件的邮件
// 在图片邮件基础上修改// 构建最大邮件块mixedMimeMultipart mixed = new MimeMultipart("mixed");MimeBodyPart relatedContent = new MimeBodyPart();MimeBodyPart fileContent = new MimeBodyPart();relatedContent.setContent(related);// 添加附件String filePath = this.getClass().getResource("file.docx").getPath();DataSource dataSource = new DataSource(new File(filePath));DataHandler dataHandler = new DataHandler(dataSource);fileContent.setDataHandler(dataHandler);// 设置附件名称fileContent.setFileName("file");mixed.addBodyPart(relatedContent);mixed.addBodyPart(fileContent);// 将图片邮件中的下面这段代码剪切过来message.setContent(mixed);// 发送邮件……
亲们,如果只是需要发送图片等资源或者附件邮件,可以将前面的代码copy之后用
1 0
- [java]Java发送邮件
- java 邮件发送 --- 简单的邮件发送
- JAVA发送邮件及springboot发送邮件
- 用java发送邮件
- 用Java发送邮件
- java发送邮件源码
- java发送邮件
- Java发送邮件
- Java发送邮件程序
- java发送Email邮件
- 怎样用java发送邮件
- 利用java发送邮件
- java 邮件发送
- java邮件发送
- java邮件发送
- java定时发送邮件
- java发送邮件代码
- Java Mail 发送邮件
- 【模拟】洛谷 P1427 小鱼的数字游戏
- Android应用开发———Android中的布局管理器
- 走近人脸检测(4)——传统人脸检测技术和 CNN 的结合
- 【C#】SQLite操作过程
- Spark性能优化指南——高级篇
- Java发送邮件
- Unity中结构体RaycaseResult
- 百度自然搜索排名是否存在人工干预?
- Git学习笔记
- 教你使用FL Studio滑音套索和颜色组选择器
- openstack, kvm, qemu-kvm以及libvirt之间的关系
- ubuntu上搭建wiki系统
- FOUND_ROWS() vs COUNT()
- Swagger与SpringMVC项目整合