美文网首页
利用JavaMail发邮件

利用JavaMail发邮件

作者: _gitignore | 来源:发表于2018-09-06 19:34 被阅读0次

参考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;
    }
}

相关文章

网友评论

      本文标题:利用JavaMail发邮件

      本文链接:https://www.haomeiwen.com/subject/ulcfgftx.html