您的位置:首页 > 编程语言 > Java开发

JavaMail发送带图片正文的邮件,outlook等邮箱不显示的问题

2013-10-02 00:14 686 查看
//认证
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("wang_yanlong_droid@163.com", "wyl123");
}
};
//属性
Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.163.com");
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, authenticator);

//构建Mime消息
MimeMessage message = new MimeMessage(session);
//设置消息内容
try {
message.setFrom(new InternetAddress("wang_yanlong_droid@163.com","奥迪"));//发送人邮箱
message.setSubject("奥迪之道");
message.setRecipient(Message.RecipientType.TO, new InternetAddress(receiver));//接收人邮箱
//cc表示抄送   bcc 表示暗送
//			message.setRecipient(Message.RecipientType.CC, new InternetAddress("抄送人邮箱"));
message.setRecipient(Message.RecipientType.BCC, new InternetAddress(copytoer));

//正文
//1、文本
MimeBodyPart body_text = new MimeBodyPart();
//				body_text.setContent("----------<br><img src='cid:action'>","text/html;charset=utf-8");//这个src的写法,有部分邮箱看不到图片,比如微软的outlook邮箱
body_text.setContent("----------<br><img src=\"cid:action\">","text/html;charset=utf-8");
//2、图片
MimeBodyPart body_pic = new MimeBodyPart();
DataHandler picDataHandler = new DataHandler(new FileDataSource(new File(emailPicPath)));
body_pic.setDataHandler(picDataHandler);
//				body_pic.setHeader("Content-ID", "<action>");//这个也可以
body_pic.setContentID("<action>");//和html链接的cid一致
//3、文本和图片关系
MimeMultipart relatedMultipart = new MimeMultipart();
relatedMultipart.addBodyPart(body_text);
relatedMultipart.addBodyPart(body_pic);
relatedMultipart.setSubType("related");
message.setContent(relatedMultipart);
//发送
Transport.send(message);
} catch (Exception e) {
e.printStackTrace();
}


我的问题,主要出在,src的写法上!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐