javamail正文中添加图片和附件

    xiaoxiao2021-03-26  50

    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(); } }
    转载请注明原文地址: https://ju.6miu.com/read-659509.html

    最新回复(0)