java发带图片正文和附件的邮件mail
2024-09-04 01:48:09
package com.mail; import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties; import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility; public class mailtest {
public static MimeMessage createmail(Session se,String send,String recv1,String recv2,String recv3) throws MessagingException, UnsupportedEncodingException {
MimeMessage message=new MimeMessage(se);
message.setSubject("标题","utf-8");
//message.setContent("正文。。。。。","text/html;charset=utf-8");本例用图片代替正文
Address address=new InternetAddress(send,"sengname","utf-8");
message.setFrom(address); //创建图片文本节点
MimeBodyPart imagePart=new MimeBodyPart();
DataHandler dataHandler=new DataHandler(new FileDataSource("t1.jpg"));
imagePart.setDataHandler(dataHandler);
imagePart.setContentID("myimage"); MimeBodyPart textPart=new MimeBodyPart();
textPart.setContent("<image src='cid:myimage '/>","text/html;charset=utf-8"); //组装文本、图片节点
MimeMultipart mimeMultipart=new MimeMultipart();
mimeMultipart.addBodyPart(imagePart);
mimeMultipart.addBodyPart(textPart);
mimeMultipart.setSubType("related");//关联关系
//图片-文本--复合--转普通节点
MimeBodyPart tex_image_tPart=new MimeBodyPart();
tex_image_tPart.setContent(mimeMultipart); //附件
MimeBodyPart aPart=new MimeBodyPart();
DataHandler dataHandler1=new DataHandler(new FileDataSource("t1.jpg"));
aPart.setDataHandler(dataHandler1);
//附件文件名
aPart.setFileName(MimeUtility.encodeText(dataHandler1.getName()));
//组装
MimeMultipart mimeMultipart1=new MimeMultipart();
mimeMultipart1.addBodyPart(tex_image_tPart);
mimeMultipart1.addBodyPart(aPart);
mimeMultipart1.setSubType("mixd");//混合关系 message.setContent(mimeMultipart1,"text/html;charset=utf-8"); message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(recv1,"shoujianren1","utf-8"));//发送shojianren
message.setRecipient(MimeMessage.RecipientType.CC, new InternetAddress(recv2,"shoujianren2","utf-8"));//抄送
message.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress(recv3,"shoujianren3","utf-8"));//密送
message.setSentDate(new Date()); message.saveChanges();
return message; }
public static void main(String[] args) throws MessagingException, UnsupportedEncodingException {
// TODO Auto-generated method stub
Properties props=new Properties(); props.setProperty("mail.transport.protocol", "smtp");// 使用的协议(JavaMail规范要求)
props.setProperty("mail.smtp.host", "smtp.qq.com");
props.setProperty("mail.smtp.port","465");//设置端口 // 发件人的邮箱的 SMTP 服务器地址
props.setProperty("mail.smtp.auth", "true");// 需要请求认证 // 需要请求认证;只有qq有这一项
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", "465"); Session se=Session.getInstance(props);
se.setDebug(true);//dayin运行信息
MimeMessage message=createmail(se, "1215230335@qq.com", "1215230335@qq.com", "1215230335@qq.com", "1215230335@qq.com"); Transport transport=(Transport) se.getTransport(); transport.connect("1215230335@qq.com", "slxptfnnjocgicdi");//动态授权码
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} }
最新文章
- C语言 &#183; 矩阵乘法 &#183; 算法训练
- FireFox每次访问页面时检查最新版本
- MySQL 5.7 Command Line Client输入密码后闪退和windows下mysql忘记root密码的解决办法
- 1027mysqlbinlog工具日志恢复
- LICEcap
- 第一次进div1了
- 【转】用 PHP 内置函数 file_put_contents 写入文件
- Linux - 硬链接与软链接
- dubbo源码分析一:整体分析
- 从Qt4到Qt5的,主要的进化有三(对于QtWidget的精简和优化会很有限)
- php之冒泡排序
- name属性作用+使用$.post()取代name属性在提交表单信息中的作用
- Build Tool/Maven, Gradle
- 求n!中含有某个因子个数的方法
- Word frequency program ver.1
- ef-codefirst方式配置实体类,生成数据库
- xslt 简单的语法
- python 自动化多线程的应用
- 对php和java里面的static函数和static的一些理解
- redis lpop key 当key不存在时,返回nil , 监测redis执行语句是否正常执行