• javaMail创建邮件和发送邮件总结


    (注: 本文是参考http://www.cnblogs.com/xdp-gacl/p/4216311.html. 感谢博主的精彩的描述)

    一, 前期的准备

      1, 导入 mail.jar

    二, 操作步骤:

      1, 创建Properties对象, 并设置相关属性, 其中包括: mail.host,  mail.transport.protocol,  mail.smtp.auth. 

      2, 创建Session对象, 设置发送邮件的网络环境, 即导入Properties对象.

      3, 通过Session对象获取Transport对象, 用于发送邮件. transport对象实现了邮件发送协议,如SMTP

      4, 使用用户名和密码连接邮件服务器

      5, 创建邮件Message 实例(由于邮件内容比较复杂, 此处使用MimeMessage)

        5.1  创建MimeBodyPart 实例(包括: 文本, 图片, 附件), 并设置内容(setContent(), setDataHandler())和 ID或名称.

        5.2  创建关系描述实例MimeMultipart, 添加所加入的元素, 并设置关系类型(related, mixed)

        5.3   将关系描述实例设置为message的内容.

        5.4  保存修改, saveChanges();

      6, 发送邮件: transport.sendMessage();

     1 package jason.mail;
     2 
     3 import java.util.Properties;
     4 
     5 import javax.activation.DataHandler;
     6 import javax.activation.FileDataSource;
     7 import javax.mail.Message;
     8 import javax.mail.Session;
     9 import javax.mail.Transport;
    10 import javax.mail.internet.InternetAddress;
    11 import javax.mail.internet.MimeBodyPart;
    12 import javax.mail.internet.MimeMessage;
    13 import javax.mail.internet.MimeMultipart;
    14 
    15 public class SimpleSendMail {
    16     public static void main(String[] args) throws Exception{
    17         Properties prop = new Properties();
    18         prop.setProperty("mail.host", "smtp.163.com");
    19         prop.setProperty("mail.transport.protocol", "smtp");
    20         prop.setProperty("mail.smtp.auth", "true");
    21         
    22         // 使用javaMail发送邮件的5个步骤
    23         //1. 创建session, 即发送邮件的网络环境
    24         Session session = Session.getInstance(prop);
    25         
    26         //开启session的debug模式,这样就可以查看发送Email的运行状态
    27         session.setDebug(true);
    28         
    29         //2. 得到transport对象: 通过session获得
    30         Transport ts = session.getTransport();
    31         
    32         //3. 使用用户名, 密码连接邮件服务器
    33         ts.connect("smtp.163.com", "liujun4719", "jason./1234");
    34         
    35         //4. 创建邮件
    36         Message message = createMail(session);
    37         
    38         //5. 发送邮件
    39         int i = 1;
    40         while(i++ <= 6){
    41             ts.sendMessage(message, message.getAllRecipients());
    42         }
    43         ts.close();
    44         
    45     }
    46     
    47     
    48     public static MimeMessage createMail(Session session) throws Exception{
    49         
    50         //创建邮件
    51         MimeMessage message = new MimeMessage(session);
    52         
    53         //设置邮件的的基本信息
    54         message.setFrom(new InternetAddress("liujun4719@163.com"));
    55         message.setRecipient(Message.RecipientType.TO, new InternetAddress("xiangjun.Liu@travelzen.com"));
    56         message.setSubject("带附件和图片的邮件");
    57         
    58         //正文
    59         MimeBodyPart text = new MimeBodyPart();
    60         text.setContent("hello", "text/html;charset=UTF-8");
    61         
    62         //图片
    63         MimeBodyPart image = new MimeBodyPart();
    64         image.setDataHandler(new DataHandler(new FileDataSource("/home/liuxiangjun/doc/mailTest/mailTestPic.png")));
    65         image.setContentID("mailTest");
    66         
    67         //附件
    68         MimeBodyPart attach = new MimeBodyPart();
    69         DataHandler dh = new DataHandler(new FileDataSource("/home/liuxiangjun/doc/mailTest/aliedit.sh"));
    70         attach.setDataHandler(dh);
    71         attach.setFileName(dh.getName());
    72         
    73         //描述关系: 正文与图片
    74         MimeMultipart mp1 = new MimeMultipart();
    75         mp1.addBodyPart(text);
    76         mp1.addBodyPart(image);
    77         mp1.setSubType("related");
    78         
    79         
    80         //描述关系: 正文与附件
    81         MimeMultipart mp2 = new MimeMultipart();
    82         mp2.addBodyPart(attach);
    83         
    84         //代表正文的bodypart
    85         MimeBodyPart content = new MimeBodyPart();
    86         content.setContent(mp1);
    87         mp2.addBodyPart(content);
    88         mp2.setSubType("mixed");
    89         
    90         message.setContent(mp2);
    91         message.saveChanges();
    92         
    93         return message;
    94         
    95     }
    96 
    97 }
    View Code
  • 相关阅读:
    Numpy基础学习笔记3
    Numpy基础学习笔记2
    Halcon学习笔记——机器视觉应用工程开发思路及相机标定
    WPF的依赖项属性
    如何理解委托与事件
    LINQ和.NET数据访问
    PLC通信网络
    运动控制基础
    PLC总结
    C#使用第三方组件Epplus操作Excel表
  • 原文地址:https://www.cnblogs.com/wodo2008/p/5341425.html
Copyright © 2020-2023  润新知