import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
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 Demo3 {
/**
* @param args add by zxx ,Feb 5, 2009
*/
public static void main(String[] args) throws Exception{
Properties props=new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
/*
* Session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,
* 如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。
* Session对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。
*/
Session session = Session.getInstance(props);
session.setDebug(true);
//整封邮件头
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("\"" + MimeUtility.encodeText("传智播客") + "\" <hust_zhaifq@sina.com>"));
msg.setSubject("你们的Java培训真的是最牛的吗?");
msg.setReplyTo(new Address[]{new InternetAddress("mmmmm@sohu.com")}); //设置收件人收到邮件后的回复地址。
msg.setRecipients(RecipientType.TO,InternetAddress.parse(MimeUtility.encodeText("黎活明") + " <llm@itcast.cn>," + MimeUtility.encodeText("张孝祥") + " <zxx@itcast.cn>"));
msg.setRecipient(Message.RecipientType.CC,new InternetAddress("hust_zhaifq@sohu.com","郑州大学CC","UTF-8"));
//------------注意:MimeMultipart中part是小写,而MimeBodyPart中Part是大写-----------
//邮件的组合MIME消息,邮件体。
MimeMultipart msgMultipart = new MimeMultipart("mixed");
msg.setContent(msgMultipart);
//-------------------注意:要先添加content,后添加附件---------------------
MimeBodyPart content = new MimeBodyPart();
MimeBodyPart attch1 = new MimeBodyPart();
MimeBodyPart attch2 = new MimeBodyPart();
msgMultipart.addBodyPart(content);
msgMultipart.addBodyPart(attch1);
msgMultipart.addBodyPart(attch2);
//DataHandler用于包装文件和数据
DataSource ds1 = new FileDataSource("resource\\Java培训.txt" );
DataHandler dh1 = new DataHandler(ds1 );
attch1.setDataHandler(dh1);
attch1.setFileName( MimeUtility.encodeText("java学习.txt")); //设置附件1文件名
//attch1.setFileName("java我的学习.txt"); //设置附件1文件名,汉字会出现乱码
DataSource ds2 = new FileDataSource("resource\\slogo.gif");
DataHandler dh2 = new DataHandler(ds2 );
attch2.setDataHandler(dh2);
attch2.setFileName("slogo.gif"); //设置附件2文件名,全都是字母不会出现汉字
//正文部分
MimeMultipart bodyMultipart = new MimeMultipart("related");
content.setContent(bodyMultipart);
MimeBodyPart htmlPart = new MimeBodyPart();
MimeBodyPart gifPart = new MimeBodyPart();
bodyMultipart.addBodyPart(htmlPart);
bodyMultipart.addBodyPart(gifPart);
DataSource gifds = new FileDataSource("resource\\logo.gif");
DataHandler gifdh = new DataHandler(gifds);
gifPart.setDataHandler(gifdh);
gifPart.setHeader("Content-Location", "http://www.itcast.cn/logo.gif");//图片代表的位置
htmlPart.setContent("<h4>欢迎大家阅读我的邮件</h4>"+"<img src='C:\\Users\\zwf\\Desktop\\四个球.jpg'>", "text/html;charset=gb2312");
//msg.setContent("Java培训"+"<img src='C:\\Users\\zwf\\Desktop\\老校门.jpg'>", "text/html;charset=gbk");
msg.saveChanges();
Transport transport = session.getTransport();
transport.connect("smtp.sina.com", 25, "hust_zhaifq", "zhai123");
transport.sendMessage(msg,
new Address[]{new InternetAddress("hust_zhaifq@sohu.com")});
transport.close();
OutputStream ops = new FileOutputStream("C:\\Users\\zwf\\Desktop\\de.eml");
msg.writeTo(ops);
ops.close();
}
}
javamail正文中添加图片和附件
最新推荐文章于 2021-02-25 16:44:11 发布