javamail创建带图片和附件的邮件

来源:互联网 发布:php页面调用参数传递 编辑:程序博客网 时间:2024/05/22 17:15
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(newProperties()));
        message.setFrom(newInternetAddress("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(newDataHandler(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(newFileOutputStream("c:\\3.eml"));
 
    }
 
}
原创粉丝点击