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"
));
}
}