Java 发送邮件

依赖:

1         <dependency>
2             <groupId>javax.mail</groupId>
3             <artifactId>mail</artifactId>
4             <version>1.4.7</version>
5         </dependency>
View Code

代码:

  1 package cn.edu.buaa.act.mail;
  2 
  3 import java.util.Date;
  4 import java.util.Properties;
  5 
  6 import javax.activation.DataHandler;
  7 import javax.activation.DataSource;
  8 import javax.activation.FileDataSource;
  9 import javax.mail.Address;
 10 import javax.mail.Authenticator;
 11 import javax.mail.BodyPart;
 12 import javax.mail.Message;
 13 import javax.mail.Multipart;
 14 import javax.mail.PasswordAuthentication;
 15 import javax.mail.Session;
 16 import javax.mail.Transport;
 17 import javax.mail.internet.InternetAddress;
 18 import javax.mail.internet.MimeBodyPart;
 19 import javax.mail.internet.MimeMessage;
 20 import javax.mail.internet.MimeMultipart;
 21 
 22 public class SendEmail {
 23 
 24     private boolean validate = true;
 25     // 发送者邮箱名
 26     private String username = "monitor_car";
 27     // 发件人邮箱
 28     private String FROM = username + "@163.com";
 29     // 发送者邮箱密码
 30     private String password = "xxxx123";
 31     // 邮件显示的发件人
 32     private String FROM_NAME = "zhangyang";
 33     // 邮件服务器
 34     private String Email_Host = "smtp.163.com";
 35     // 邮件标题
 36     private String Email_Subject = "开会通知";
 37     // 邮件头
 38     private String Email_Header = "This Is Email Header";
 39     // 邮件内容
 40     private String Email_Body = "<a href="http://www.baidu.com">This Is Email Body</a>";
 41     // 收件人邮箱
 42     private String TO = "xxxx@163.com";
 43 
 44     public void doSendEmail(int mailType) {
 45 
 46         // 获取系统环境
 47         Properties prop = new Properties();
 48         Authenticator auth = null;
 49         // 判断发送邮件是否需要验证
 50         if (validate) {
 51             // 邮件服务器认证 用户名和密码
 52             auth = new Authenticator() {
 53                 protected PasswordAuthentication getPasswordAuthentication() {
 54                     return new PasswordAuthentication(username, password);
 55                 }
 56             };
 57         }
 58         // 添加必要的信息
 59         prop.put("mail.smtp.host", Email_Host);
 60         prop.put("mail.smtp.auth", validate);
 61 
 62         // 设置对话和邮件服务器进行通讯
 63         Session session = Session.getDefaultInstance(prop, auth);
 64         // 在控制台显示Debug信息
 65         session.setDebug(true);
 66         // 设置邮件对象
 67         Message message = new MimeMessage(session);
 68         try {
 69             // 设置邮件主题
 70             message.setSubject(Email_Subject);
 71             // 设置邮件标题
 72             message.setHeader("Header", Email_Header);
 73             // 设置发送时间
 74             message.setSentDate(new Date());
 75 
 76             // 设置发信人地址 和 名字
 77             Address address = new InternetAddress(FROM, FROM_NAME);
 78             // 把发件人信息添加到信息中
 79             message.setFrom(address);
 80 
 81             // 设置发件人地址
 82             Address toAddress = new InternetAddress(TO);
 83             // 设置接收人地址
 84             message.setRecipient(Message.RecipientType.TO, toAddress);
 85 
 86             // 设置多个收件人地址
 87             // message.addRecipient(Message.RecipientType.TO,new
 88             // InternetAddress("xxx@xxx.com"));
 89 
 90             // 设置邮件格式
 91             switch (mailType) {
 92             case 1:// 发送纯文本邮件
 93                 message.setContent(Email_Body, "text/plain; charset=utf-8");
 94                 break;
 95             case 2:// 发送html邮件
 96                 message.setContent(Email_Body, "text/html; charset=utf-8");
 97                 break;
 98             case 3:// 发送附件
 99                 message.setContent(Email_Body, "text/html; charset=utf-8");
100 
101                 Multipart multipart = new MimeMultipart();
102                 // 邮件正文部分
103                 BodyPart messageBodyPart = new MimeBodyPart();
104                 messageBodyPart.setText("bodypart");
105                 multipart.addBodyPart(messageBodyPart);
106 
107                 // 邮件附件部分
108                 messageBodyPart = new MimeBodyPart();
109                 // 设置上传的资源
110                 DataSource source = new FileDataSource("C:/Users/zsm/Desktop/省级行政图.jpg");
111                 // 添加到
112                 messageBodyPart.setDataHandler(new DataHandler(source));
113                 // 设置文件名称,记得后缀名
114                 messageBodyPart.setFileName("tmp.jpg");
115                 multipart.addBodyPart(messageBodyPart);
116 
117                 message.setContent(multipart);
118                 break;
119             default: {
120                 System.out.println("要发送的邮件类型错误");
121                 System.exit(1);
122             }
123             }
124 
125             // 保存上面添加的信息
126             message.saveChanges();
127             // 发送邮件
128             System.out.println("类型 " + mailType + "开始发送邮件……");
129             Transport.send(message);
130             System.out.println("发送成功!");
131         } catch (Exception e) {
132             System.out.println("出错");
133             e.printStackTrace();
134         }
135     }
136 
137     /**
138      * @param args
139      */
140     public static void main(String[] args) {
141         new SendEmail().doSendEmail(1);
142     }
143 }
View Code
原文地址:https://www.cnblogs.com/z-sm/p/5857655.html