package com.forenms.ycczj.email;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
/**
* 进行邮箱认证
*
*
*/
public class EmailAutherticator extends Authenticator{
private String userName;
private String passWord;
public EmailAutherticator(String userName, String passWord) {
super();
this.setUserName(userName);
this.setPassWord(passWord);
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, passWord);
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
package com.forenms.ycczj.email;
import java.util.Date;
import java.util.Properties;
import java.util.ResourceBundle;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class SendMail {
private static ResourceBundle bunder=ResourceBundle.getBundle("email");
public static void main(String args[])throws Exception{
String smsMob[]=new String[]{"xxxxxx@qq.com"};
System.out.println(SendMail.sendMail("title 邮件的标题", smsMob, "content 邮件的内容"));
}
/**
* 发送邮件
* @param subject 标题
* @param to 接收方
* @param text 内容
* @param mimeType 类型("text/html;charset=gb2312")
* @throws Exception
*/
public static boolean sendMail(String subject, String[] to,String text) {
boolean result=false;
String smtp = bunder.getString("mail.smtp.host");
String serverName = bunder.getString("mail.qq");
String serverPaswd = bunder.getString("mail.from.password");
String userMail=bunder.getString("mail.from");
//设置连接邮件服务器属性
Properties properties = System.getProperties();
properties.put("mail.smtp.host", smtp);
properties.put("mail.smtp.auth", "true");
//进行邮件服务器认证
EmailAutherticator emailAuther = new EmailAutherticator(serverName, serverPaswd);
//获取连接邮件服务器会话
Session session = Session.getInstance(properties,(Authenticator)emailAuther);
//设置邮件正文
MimeMessage mimeMessage = new MimeMessage(session);
Multipart multipart = new MimeMultipart();
try {
//设置发送邮件人地址
InternetAddress sentFrom = new InternetAddress(userMail);
mimeMessage.setFrom(sentFrom);
//设置接收邮件人地址
InternetAddress[] sendTo = new InternetAddress[to.length];
for (int i = 0; i < to.length; i++) {
sendTo[i] = new InternetAddress(to[i]);
}
//mimeMessage.setRecipients(MimeMessage.RecipientType.TO, sendTo);
mimeMessage.setRecipients(MimeMessage.RecipientType.BCC,sendTo);
//设置邮件标题
mimeMessage.setSubject(subject, "UTF-8");
//加入邮件正文信息
MimeBodyPart mimeBodyPartHtml = new MimeBodyPart();
//加入html
mimeBodyPartHtml.setContent(text, "text/html;charset=gb2312");
multipart.addBodyPart(mimeBodyPartHtml);
//加入邮件正文
mimeMessage.setContent(multipart);
//加入发送时间
mimeMessage.setSentDate(new Date());
//保存信息
mimeMessage.saveChanges();
//发送邮件
Transport.send(mimeMessage);
result=true;
} catch (Exception e) {
//e.printStackTrace();
return false;
}
return result;
}
/**
* 发送邮件(加入附件)
* @param subject 标题
* @param to 接收方
* @param text 内容
* @param fileName 发送文件
* @param mimeType 类型("text/html;charset=gb2312")
* @throws Exception
*/
public static void sendMailToFile(String subject, String[] to,String text, String fileName) throws Exception {
String smtp = "smtp.163.com";
String serverName = "xxxxxx";
String serverPaswd = "xxxxxxxxx";
String userMail="xxxxxxx@163.com";
//设置连接邮件服务器属性
Properties properties = System.getProperties();
properties.put("mail.smtp.host", smtp);
properties.put("mail.smtp.auth", "true");
//进行邮件服务器认证
EmailAutherticator emailAuther = new EmailAutherticator(serverName, serverPaswd);
//获取连接邮件服务器会话
Session session = Session.getInstance(properties,(Authenticator)emailAuther);
//设置邮件正文
MimeMessage mimeMessage = new MimeMessage(session);
Multipart multipart = new MimeMultipart();
//设置发送邮件人地址
InternetAddress sentFrom = new InternetAddress(userMail);
mimeMessage.setFrom(sentFrom);
//设置接收邮件人地址
InternetAddress[] sendTo = new InternetAddress[to.length];
for (int i = 0; i < to.length; i++) {
sendTo[i] = new InternetAddress(to[i]);
}
//mimeMessage.setRecipients(MimeMessage.RecipientType.TO, sendTo);
mimeMessage.setRecipients(MimeMessage.RecipientType.BCC,sendTo);
//设置邮件标题
mimeMessage.setSubject(subject, "UTF-8");
//加入邮件正文信息
MimeBodyPart mimeBodyPartHtml = new MimeBodyPart();
//加入html
mimeBodyPartHtml.setContent(text, "text/html;charset=gb2312");
multipart.addBodyPart(mimeBodyPartHtml);
//加入附件
MimeBodyPart mimeBodyPartFile = new MimeBodyPart();
//附件文件路径
String filename = fileName.split(",")[0];
//附件文件名称
String displayname = fileName.split(",")[1];
//获取文件流
FileDataSource fds = new FileDataSource(filename);
mimeBodyPartFile.setDataHandler(new DataHandler(fds));
mimeBodyPartFile.setFileName(MimeUtility.encodeText(displayname));
multipart.addBodyPart(mimeBodyPartFile);
//加入邮件正文
mimeMessage.setContent(multipart);
//加入发送时间
mimeMessage.setSentDate(new Date());
//保存信息
mimeMessage.saveChanges();
//发送邮件
Transport.send(mimeMessage);
}
}
email.properties
mail.smtp.host=smtp.qq.com
mail.smtp.auth=true
mail.from=xxxxxx@qq.com
mail.qq=xxxxxx
mail.from.password=******
mail.smtp.timeout=25000
mail.smtp.starttls.enable=true