//密码
//带模板的邮件
public SendMail(String to, String subject, String
content,String fileName) {
try{
if(to!=null &&
!"".equals(to)){
thread = new
Thread(this);
this.to = to;
this.subject =
subject;
attach = new
ArrayList();
//读取文件模板
File file=new
File(fileName);
BufferedReader br = new
BufferedReader(new FileReader(file));
StringBuffer sb=new
StringBuffer();
while (br.ready())
{
sb.append(br.readLine());
sb.append("\r\n");
}
//?换模块中的##content变量内容为content
this.cOntent=sb.toString().replaceAll("##content",content);
}
}catch(Exception e){
e.printStackTrace();
}
}
//带上署名和模块的邮件
public SendMail(String sname,String to, String subject,
String content,String fileName) {
try{
thread = new Thread(this);
this.to = to;
this.subject = subject;
this.sname=sname;
attach = new ArrayList();
//读取文件模板
File file=new File(fileName);
BufferedReader br = new
BufferedReader(new FileReader(file));
StringBuffer sb=new
StringBuffer();
while (br.ready()) {
sb.append(br.readLine());
}
this.cOntent=sb.toString().replaceAll("##caicainet_content",content);
}catch(Exception e){
e.printStackTrace();
}
}
public SendMail(String sname,String to, String subject,
String content,int typeId) {
thread = new Thread(this);
this.to = to;
this.subject = subject;
this.sname=sname;
attach = new ArrayList();
this.cOntent=content;
this.type = "text/plain";
}
public void run() {
try {
send();
} catch (Exception e) {
e.printStackTrace();
}
}
public void start() {
thread.start();
}
public boolean send() throws Exception {
return send(to, subject, content);
}
private boolean send(String to, String subject,
String content){
boolean blnResult = false;
InternetAddress[] address = null;
//mailserver邮件服务器 Form
发送邮件的邮箱 pwd密码
//此处三个参数可能通过数据库或.properties等方式来获取,方便后期的管理与设置
String mailserver = "smtp.sina.com";
String From = "";//发送方的邮箱
String pwd = "";//密码
if(smtpHost!=null &&
!"".equals(smtpHost))
mailserver=smtpHost;
if(emailFrom!=null &&
!"".equals(emailFrom))
From=emailFrom;
if(fromPwd!=null &&
!"".equals(fromPwd))
pwd=fromPwd;
if(smtpHost!=null &&
"nopass".equals(smtpHost))
{
smtpHost="";
System.out.println("发送给"+to+"失败!原因是smtp地址不正确");
return false;
}
String messageText = content;
boolean sessiOnDebug= false;
Date d1=new Date();
try {
// 设定所要用的Mail 服务器和所使用的传输协议
java.util.Properties props =
System.getProperties();
props.put("mail.host",
mailserver);
props.put("mail.transport.protocol",
"smtp");
props.put("mail.smtp.auth",
"true");//指定是否需要SMTP验证
// 产生新的Session 服务
javax.mail.Session mailSession =
javax.mail.Session.getDefaultInstance(props, null);
mailSession.setDebug(sessionDebug);
Message msg = new
MimeMessage(mailSession);
if(sname!=null &&
!"".equals(sname))
{
// 设定发邮件的人
msg.setFrom(new
InternetAddress(From,sname));
}
else
{
//带署名的邮件
msg.setFrom(new
InternetAddress(From,"刘海洋"));
}
if(sname!=null &&
"mail".equals(sname))
{
msg.setFrom(new
InternetAddress(From,""));
}
// 设定收信人的信箱
address =
InternetAddress.parse(to, false);
msg.setRecipients(Message.RecipientType.TO,
address);
// 设定信中的主题
msg.setSubject(subject);
// 设定送信的时间
msg.setSentDate(new Date());
if("text/html".equals(this.type))
{
msg.setContent(messageText,
type + ";charset=GB2312");
}
else
{
msg.setText(messageText);
}
Transport transport =
mailSession.getTransport("smtp");
transport.connect(mailserver,
From, pwd);
transport.sendMessage(msg,
msg.getAllRecipients());
transport.close();
Date d2=new Date();
System.out.println("发送给"+to+"成功!耗时"+(d2.getTime()-d1.getTime())+"毫秒,发送方:"+From);
blnResult=true;
} catch (MessagingException mex) {
mex.printStackTrace();
blnResult=false;
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
return blnResult;
}
public void setTo(String to) {
this.to = to;
}
public String getTo() {
return this.to;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getSubject() {
return this.subject;
}
public void setContent(String content) {
this.cOntent= content;
}
public String getContent() {
return this.content;
}
public void addAttach(String file) {
attach.add(file);
}
public boolean isAttach() {
return attach != null &&
attach.size() > 0;
}
public static void main(String[] args) {
try {
//普通的文字邮件
SendMail sendMail=new
SendMail("王大河","**@163.com", "试试", "没时间那",1);
sendMail.start();
//带模版的邮件
String path =
"D:/project/tongji/WebRoot/template/email.html";
//获取存放路径
String chtml="";
SendMail sendMail=new
SendMail("**@163.com,"上哪去?!",chtml,path);
sendMail.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}