您的位置:首页 > 其它

一封复杂点的邮件

2013-12-18 20:55 375 查看
package cn.zjgsu.netcom;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
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 Demo3 {

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub

Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.auth", "true");
Session session = Session.getInstance(props);
session.setDebug(true);
Message msg = new MimeMessage(session);
msg.setSubject("这是另一封复杂邮件");
msg.setFrom(new InternetAddress("netcom_test@163.com"));
Multipart msgMultipart = new MimeMultipart("mixed");
msg.setContent(msgMultipart);

BodyPart attach1 = new MimeBodyPart();
BodyPart attach2 = new MimeBodyPart();
BodyPart content = new MimeBodyPart();
msgMultipart.addBodyPart(attach1);
msgMultipart.addBodyPart(attach2);
msgMultipart.addBodyPart(content);

DataSource ds1 = new FileDataSource("xxx");
DataHandler dh1 = new DataHandler(ds1);
attach1.setDataHandler(dh1);
attach1.setFileName("Demo1");

DataSource ds2 = new FileDataSource("xxx");
DataHandler dh2 = new DataHandler(ds2);
attach2.setDataHandler(dh2);
attach2.setFileName("Demo2");

Multipart bodyMultipart = new MimeMultipart("related");
content.setContent(bodyMultipart);
BodyPart msgBodyPart = new MimeBodyPart();
bodyMultipart.addBodyPart(msgBodyPart);
BodyPart picBodyPart = new MimeBodyPart();
bodyMultipart.addBodyPart(picBodyPart);

DataSource picds = new FileDataSource("xxx");
DataHandler picdh = new DataHandler(picds);
picBodyPart.setDataHandler(picdh);
picBodyPart.setHeader("Content-Location", "sdnsim.jpg");
msgBodyPart
.setContent(
"<html><body><font color='red'>这是一封用java生成的邮件!</font><img src='sdnsim.jpg'/></body></html>",
"text/html;charset=gb2312");
msg.saveChanges();

Transport transport = session.getTransport();
transport.connect("smtp.163.com", 25, "xxx", "xxx");
transport.sendMessage(msg, new Address[] { new InternetAddress(
"xxx") });
transport.close();
}
}

有几个问题:

1、邮件正文中的图片是以附件的形式存在

2、相同的代码第一次还能发送,后面看终端显示已经发送成功,但邮件并没有收到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: