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、相同的代码第一次还能发送,后面看终端显示已经发送成功,但邮件并没有收到