利用JavaMail发邮件

参考https://www.cnblogs.com/ysocean/p/7666061.html

利用JavaMail 实现发邮件。


首先导入必要的附件

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;

public class MailTest {
    public static void main(String[] args) throws MessagingException, IOException {
        Properties properties = new Properties();
        properties.setProperty("mail.host", "smtp.163.com");
        properties.setProperty("mail.transport.protocol", "smtp");
        properties.setProperty("mail.smtp.auth", "true");

        Session mailSession = Session.getInstance(properties);
        mailSession.setDebug(true);
        Transport tr = mailSession.getTransport();
        String username = "loggyf";
        String password = "damoguyan666";
        try {
//            MimeMessage mimeMessage = createSimpleMail(mailSession);
            MimeMessage mimeMessage = createMultiPartMail(mailSession);
            tr.connect(username, password);
            tr.sendMessage(mimeMessage, mimeMessage.getAllRecipients());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            tr.close();
        }

    }

    /*创建简单的文本邮件*/
    public static MimeMessage createSimpleMail(Session session) throws Exception {
        MimeMessage mimeMessage = new MimeMessage(session);
        mimeMessage.setFrom(new InternetAddress("loggyf@163.com"));
        mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("loggyf@sohu.com"));
        mimeMessage.setSubject("只包含文本的簡單郵件");
        mimeMessage.setContent("你好啊!", "text/html;charset=UTF-8");
        return mimeMessage;
    }

    /*创建包含图片和附件的邮件*/
    public static MimeMessage createMultiPartMail(Session session) throws Exception {
        MimeMessage mimeMessage = new MimeMessage(session);
        mimeMessage.setFrom(new InternetAddress("loggyf@163.com"));
        mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("loggyf@sohu.com"));
        mimeMessage.setSubject("邮件主题:带图片和附件的邮件");
        MimeBodyPart image = new MimeBodyPart();
        DataHandler dataHandler = new DataHandler(new FileDataSource("src\\horse.jpg"));
        image.setDataHandler(dataHandler);
        image.setContentID("mailTestPic");

        MimeBodyPart text = new MimeBodyPart();
        text.setContent("这是一张图片<br><a href='http://www.baidu.com'><img src='cid:mailTestPic' /></a>", "text/html;charset=UTF-8");

        MimeMultipart mm_text_image = new MimeMultipart();
        mm_text_image.addBodyPart(text);
        mm_text_image.addBodyPart(image);
        mm_text_image.setSubType("related");

        MimeBodyPart text_image = new MimeBodyPart();
        text_image.setContent(mm_text_image);

        MimeBodyPart attachment = new MimeBodyPart();
        DataHandler dhandler = new DataHandler(new FileDataSource("src\\韩素音翻译.docx"));
        attachment.setDataHandler(dhandler);
        attachment.setFileName(MimeUtility.encodeText(dhandler.getName()));

        Multipart mm = new MimeMultipart();
        mm.addBodyPart(text_image);
        mm.addBodyPart(attachment);
        ((MimeMultipart) mm).setSubType("mixed");

        mimeMessage.setContent(mm);
        mimeMessage.setSentDate(new Date());
        return mimeMessage;
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,258评论 3 283
  • 为纪念今年苏州的雨,特赋湿一手。 雨,很好 下雨,更好 是这么一回事 你打芭蕉而湿眼眶 弄出几分伤感来 你泣残荷而...
    劍心阅读 259评论 5 0
  • 感恩宇宙哥把一切都安排得好好的,分享会主持、音控、摄影都已到位,流程也出来了,宇宙哥哥再把人数显化就完美,谢谢谢谢...
    红燕_4471阅读 125评论 0 0
  • 傍晚,走在乡间的小路上。夕阳染醉了天空,归鸟扑翅掠过,空气中稻草混合泥土的芬香,让人莫名的沉醉。田埂上有一陇粉白色...
    潇湘笺阅读 423评论 0 2
  • 吾鑫儿阅读 229评论 0 0