import java.io.FileOutputStream;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.AddressException;
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
ComplexMail {
/**
* 复杂的邮件
* @throws MessagingException
* @throws AddressException
*/
public
static void main(String[] args) throws Exception {
MimeMessage message =
new MimeMessage(Session.getInstance(new
Properties()));
message.setFrom(new
InternetAddress("aa@sina.com"));
message.setRecipient(Message.RecipientType.TO,
new InternetAddress("aa@sina.com"));
message.setSubject("这是邮件");
//封装正文
MimeBodyPart text =
new MimeBodyPart();
text.setContent("这是我的邮件xxx<br><img src='cid:3.jpg'>",
"text/html;charset=UTF-8");
//封装图片
MimeBodyPart image =
new MimeBodyPart();
image.setDataHandler(new
DataHandler(new FileDataSource("src\\3.jpg")));
image.setContentID("3.jpg");
//封装附件
MimeBodyPart attach =
new MimeBodyPart();
DataHandler dh =
new DataHandler(new FileDataSource("src\\灰色.mp3"));
attach.setDataHandler(dh);
String
filename = dh.getName();
attach.setFileName(MimeUtility.encodeText(filename));
//附件的乱码问题
//描述正文和图片的关系
MimeMultipart content =
new MimeMultipart();
content.addBodyPart(text);
content.addBodyPart(image);
content.setSubType("related");
//描述正文和附件的关系
MimeMultipart mm =
new MimeMultipart();
mm.addBodyPart(attach);
MimeBodyPart bp =
new MimeBodyPart();
bp.setContent(content);
mm.addBodyPart(bp);
mm.setSubType("mixed");
message.setContent(mm);
message.saveChanges();
message.writeTo(new
FileOutputStream("c:\\3.eml"));
}
}