首页 > 代码库 > Java 发送邮件

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.mamicode.com/"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 args139      */140     public static void main(String[] args) {141         new SendEmail().doSendEmail(1);142     }143 }
View Code

 

Java 发送邮件