package com.neusoft.test;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
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;
public class AttchImgMail {
public boolean sendEmailWithImg(String recipient,String subject, String content,String imgPath) {
// JavaMail需要Properties来创建一个session对象。它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机.
Properties properties = new Properties();
// properties.put("mail.smtp.host", "mailcas.chinapnr.com");// 设置smtp主机
properties.put("mail.smtp.host", "smtp.163.com");// 设置smtp主机
properties.put("mail.smtp.auth", "true");// 使用smtp身份验证
boolean flag = false;
try {
MimeMessage message = new MimeMessage(Session.getInstance(properties,
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(//设置发送帐号密码
"发送邮件邮箱", "密码");
}
}));
// 设置邮件的属性
// 设置邮件的发件人
message.setFrom(new InternetAddress("发件人"));
// 设置邮件的收件人 cc表示抄送 bcc 表示暗送
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient
));
// 设置邮件的主题
message.setSubject(subject);
// 创建邮件的正文
MimeBodyPart text = new MimeBodyPart();
// setContent(“邮件的正文内容”,”设置邮件内容的编码方式”)
text.setContent(content,
"text/html;charset=gb2312");
// 点到点的发送
// 一对多发送只要改一个地方如下:
// // 构建一个群发地址数组
// InternetAddress[] adr=new InternetAddress[toMore.length];
// for(int i=0;i<toMore.length;i++){ adr[i]=new
// InternetAddress(toMore[i]); }
// // Message的setRecipients方法支持群发。。注意:setRecipients方法是复数和点 到点不一样
// message.setRecipients(Message.RecipientType.TO,adr);
// 创建图片
MimeBodyPart img = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource(imgPath));//图片路径
img.setDataHandler(dh);
// 创建图片的一个表示用于显示在邮件中显示
img.setContentID("a");
// 创建附件
// MimeBodyPart attch = new MimeBodyPart();
// DataHandler dh1 = new DataHandler(new FileDataSource("src//b.jpg"));
// attch.setDataHandler(dh1);
// String filename1 = dh1.getName();
// MimeUtility 是一个工具类,encodeText()用于处理附件字,防止中文乱码问题
// attch.setFileName(MimeUtility.encodeText(filename1));
// 关系 正文和图片的
MimeMultipart mm = new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(img);
mm.setSubType("related");// 设置正文与图片之间的关系
// 图班与正文的 body
MimeBodyPart all = new MimeBodyPart();
all.setContent(mm);
message.setContent(mm);
message.saveChanges(); // 保存修改
Transport.send(message);// 发送邮件
System.out.println("邮件发送成功");
flag = true;
return flag;
}catch(Exception ex) {
ex.printStackTrace();
return flag;
}
}
}
java 发送邮件,邮件内容中含图片
最新推荐文章于 2024-07-31 04:38:12 发布