public class MailSender {
/**
* 發送單個郵件
* @throws Exception
*/
public void sendMail() throws Exception{
Properties props = new Properties();//創建屬性對象
props.put("mail.smtp.host", getHost());//設置smtp服務器地址
props.put("mail.smtp.auth", "true");//設置服務器smtp需要驗證
Session session = Session.getInstance(props, null);//創建新郵件並群發
//Session session = Session.getDefaultInstance(props);
//session.setDebug(true);
MimeMessage message = new MimeMessage(session);//創建過程對象
message.setFrom(new InternetAddress(getFromAddr()));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));
message.setSubject(getTitle());//設置主題
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setContent(this.getSendtext(), "text/html;charset=GBK");//設置信件內容
multipart. addBodyPart(contentPart);
if(getAttachPath() != null && getAttachName() != null){
BodyPart attachmentPart= new MimeBodyPart();
DataSource source = new FileDataSource(getAttachPath());
attachmentPart.setDataHandler(new DataHandler(source));
BASE64Encoder enc = new BASE64Encoder();
attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");
multipart.addBodyPart(attachmentPart);
}
message.setContent(multipart);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, getUsername(), getPassword());
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
/**
* 群發郵件
* @throws Exception
*/
public void sendMails() throws Exception{
Properties props = new Properties();//創建屬性對象
props.put("mail.smtp.host", getHost());//設置smtp服務器地址
props.put("mail.smtp.auth", "true");//設置服務器smtp需要驗證
Session session = Session.getInstance(props, null);//創建新郵件並群發
//Session session = Session.getDefaultInstance(props);
//session.setDebug(true);
MimeMessage message = new MimeMessage(session);//創建過程對象
message.setFrom(new InternetAddress(getFromAddr()));//設置發送郵件地址
message.setSentDate(new Date());//設置時間
InternetAddress[] address = new InternetAddress[this.getMutliTo().length]; //群發地址
for(int i = 0; i < this.getMutliTo().length; i++) { //循環發送
address[i] = new InternetAddress((this.getMutliTo())[i]);
}
message.setRecipients(Message.RecipientType.TO, address);
// message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));
message.setSubject(getTitle());//設置主題
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setContent(this.getSendtext(), "text/html;charset=GBK");//設置信件內容
multipart. addBodyPart(contentPart);
if(getAttachPath() != null && getAttachName() != null){
BodyPart attachmentPart= new MimeBodyPart();
DataSource source = new FileDataSource(getAttachPath());
attachmentPart.setDataHandler(new DataHandler(source));
BASE64Encoder enc = new BASE64Encoder();
attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");
multipart.addBodyPart(attachmentPart);
}
message.setContent(multipart);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, getUsername(), getPassword());
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
private String host = null; //郵件服務器
private String fromAddr = null; //發送郵件地址
private String toAddr = null; //接收郵件地址
private String username = null; //發送郵件用戶名
private String password = null; //發送郵件密碼
private String title = null; //郵件標題
private String attachPath = null; //郵件附件路徑
private String attachName = null; //郵件附件名
private String sendtext = null; //郵件內容
private String[] MutliTo = null; //群發用戶
public String[] getMutliTo() {
return MutliTo;
}
public void setMutliTo(String[] mutliTo) {
MutliTo = mutliTo;
}
public String getSendtext() {
return sendtext;
}
public void setSendtext(String sendtext) {
this.sendtext = sendtext;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getFromAddr() {
return fromAddr;
}
public void setFromAddr(String fromAddr) {
this.fromAddr = fromAddr;
}
public String getToAddr() {
return toAddr;
}
public void setToAddr(String toAddr) {
this.toAddr = toAddr;
}
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;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAttachPath() {
return attachPath;
}
public void setAttachPath(String attachPath) {
this.attachPath = attachPath;
}
public String getAttachName() {
return attachName;
}
public void setAttachName(String attachName) {
this.attachName = attachName;
}
}
折射配置文件的內容
#\u914d\u7f6eemail\u53d1\u9001\u6587\u4ef6 host=smtp.163.com username=***** password=***** fromadd=*****@163.com