📄 emailservice.java
字号:
package net.txl3.service;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
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;
import sun.misc.BASE64Encoder;
/**
* 邮件
* @author Administrator
*
*/
public class EmailService {
/**
* 得到properties配置文件
* @return
*/
protected Properties getProps(){
// 得到配置文件的值
Properties props = new Properties(System.getProperties());
try {
props.load(getClass().getResourceAsStream(
"/net/txl3/common/sendmail.properties"));
} catch (Exception e) {
}
return props;
}
/**
* 发送单个邮件
* @param toaddr 接收邮件地址
* @param title 邮件标题
* @param sendtext 邮件内容
* @param attachPath 邮件附件路径
* @param attachName 邮件附件名
* @throws Exception
*/
public void sendMail(String toaddr,String title,String sendtext,String attachPath,String attachName) throws Exception{
Properties prp = this.getProps();
Properties props = new Properties();//创建属性对象
props.put("mail.smtp.host", prp.getProperty("host"));//设置smtp服务器地址
props.put("mail.smtp.auth", "false");//设置服务器smtp需要验证
Session session = Session.getInstance(props, null);//创建新邮件并群发
//Session session = Session.getDefaultInstance(props);
//session.setDebug(true);
MimeMessage message = new MimeMessage(session);//创建过程对象
message.setFrom(new InternetAddress(prp.getProperty("fromadd")));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(toaddr));
BASE64Encoder enc = new BASE64Encoder();
//message.setSubject(getTitle());//设置主题
message.setSubject(MimeUtility.encodeText(title,"GBK","B"));
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setContent(sendtext, "text/html;charset=GBK");//设置信件内容
multipart. addBodyPart(contentPart);
if(attachPath != null && attachName != null){
BodyPart attachmentPart= new MimeBodyPart();
DataSource source = new FileDataSource(attachPath);
attachmentPart.setDataHandler(new DataHandler(source));
// BASE64Encoder enc = new BASE64Encoder();
attachmentPart.setFileName("=?GBK?B?"+enc.encode(attachName.getBytes())+"?=");
multipart.addBodyPart(attachmentPart);
}
message.setContent(multipart);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(prp.getProperty("host"), prp.getProperty("username"), prp.getProperty("password"));
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
/**
* 群发邮件
* @param MutliTo 群发用户
* @param title 邮件标题
* @param sendtext 邮件内容
* @param attachPath 邮件附件路径
* @param attachName 邮件附件名
* @throws Exception
*/
public void sendMails(String []MutliTo,String title,String sendtext,String attachPath,String attachName ) throws Exception{
Properties prp = this.getProps();
Properties props = new Properties();//创建属性对象
props.put("mail.smtp.host", prp.getProperty("host"));//设置smtp服务器地址
props.put("mail.smtp.auth", "false");//设置服务器smtp需要验证
Session session = Session.getInstance(props, null);//创建新邮件并群发
//Session session = Session.getDefaultInstance(props);
//session.setDebug(true);
MimeMessage message = new MimeMessage(session);//创建过程对象
message.setFrom(new InternetAddress(prp.getProperty("fromadd")));//设置发送邮件地址
message.setSentDate(new Date());//设置时间
InternetAddress[] address = new InternetAddress[MutliTo.length]; //群发地址
for(int i = 0; i < MutliTo.length; i++) { //循环发送
address[i] = new InternetAddress((MutliTo)[i]);
}
message.setRecipients(Message.RecipientType.TO, address);
BASE64Encoder enc = new BASE64Encoder();
//message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));
//message.setSubject(getTitle());//设置主题
message.setSubject(MimeUtility.encodeText(title,"GBK","B"));//设置主题 解决中文乱码问题
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setContent(sendtext, "text/html;charset=GBK");//设置信件内容
multipart. addBodyPart(contentPart);
if(attachPath != null && attachName!= null){
BodyPart attachmentPart= new MimeBodyPart();
DataSource source = new FileDataSource(attachPath);
attachmentPart.setDataHandler(new DataHandler(source));
//BASE64Encoder enc = new BASE64Encoder();
attachmentPart.setFileName("=?GBK?B?"+enc.encode(attachName.getBytes())+"?=");
multipart.addBodyPart(attachmentPart);
}
message.setContent(multipart);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(prp.getProperty("host"), prp.getProperty("username"), prp.getProperty("password"));
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -