标签:
依赖:
1 <dependency> 2 <groupId>javax.mail</groupId> 3 <artifactId>mail</artifactId> 4 <version>1.4.7</version> 5 </dependency>
代码:
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 }
标签:
原文地址:http://www.cnblogs.com/z-sm/p/5857655.html