项目环境
邮件发送类
package com.entel.research;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
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
{
/**
* 读邮件模板
* author 李建
* date 2010-05-14
*/
public String readFile(String sourceFile) throws Exception
{
File file = new File(sourceFile);
InputStream is = new FileInputStream(file);
byte[] buf = new byte[10240];
int len = 0;
String str = null;
while((len = is.read(buf)) != -1)
{
str = new String(buf,0,len);
}
return str;
}
/**
* 发送邮件
* author 李建
* date 2010-05-14
*/
public boolean sendMail(String smtp, String sendFrom, String sendTo,
String smtpName, String smtpPassword, String content,String subject)
throws Exception
{
final String _smtpName = smtpName;
final String _smtpPassword = smtpPassword;
Properties props = new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", smtp);
Session session = Session.getInstance(props, new Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(_smtpName, _smtpPassword);
}
});
session.setDebug(true);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress( MimeUtility.encodeText(sendFrom)
));
msg.setRecipients(RecipientType.TO, InternetAddress.parse(sendTo));
msg.setSubject(subject);
MimeMultipart msgMultipart = new MimeMultipart("mixed");
msg.setContent(msgMultipart);
MimeBodyPart contents = new MimeBodyPart();
msgMultipart.addBodyPart(contents);
MimeMultipart bodyMultipart = new MimeMultipart("related");
contents.setContent(bodyMultipart);
MimeBodyPart htmlPart = new MimeBodyPart();
bodyMultipart.addBodyPart(htmlPart);
htmlPart.setContent(content, "text/html;charset=gbk");
msg.setHeader("Date", new Date().toString());
//设置发送时间
msg.setSentDate(new Date());
msg.saveChanges();
session.setDebug(false);
try
{
Transport.send(msg, InternetAddress.parse(sendTo));
return true;
}
catch (Exception e)
{
System.out.println(e.getMessage());
return false;
}
}
/**
* 发送邮件
* author 李建
* date 2010-05-14
*/
public boolean sendMail(String smtp, String sendFrom, String sendTo,
String smtpName, String smtpPassword, String content,
String subject, String accessoryAddress, String accessoryName)
throws Exception
{
final String _smtpName = smtpName;
final String _smtpPassword = smtpPassword;
Properties props = new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", smtp);
Session session = Session.getInstance(props, new Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(_smtpName, _smtpPassword);
}
});
session.setDebug(true);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(MimeUtility.encodeText(sendFrom)));
msg.setRecipients(RecipientType.TO, InternetAddress.parse(sendTo));
msg.setSubject(subject);
//设置发送时间
msg.setSentDate(new Date());
MimeMultipart msgMultipart = new MimeMultipart("mixed");
msg.setContent(msgMultipart);
// 发送content
MimeBodyPart contents = new MimeBodyPart();
msgMultipart.addBodyPart(contents);
MimeMultipart bodyMultipart = new MimeMultipart("related");
contents.setContent(bodyMultipart);
MimeBodyPart htmlPart = new MimeBodyPart();
bodyMultipart.addBodyPart(htmlPart);
htmlPart.setContent(content, "text/html;charset=gbk");
// 发送附件
MimeBodyPart attch1 = new MimeBodyPart();
msgMultipart.addBodyPart(attch1);
DataSource ds1 = new FileDataSource(accessoryAddress);
DataHandler dh1 = new DataHandler(ds1);
attch1.setDataHandler(dh1);
attch1.setFileName(MimeUtility.encodeText(accessoryName));
session.setDebug(false);
try
{
Transport.send(msg, InternetAddress.parse(sendTo));
return true;
}
catch (Exception e)
{
return false;
}
}
}
邮件发送测试类
package com.entel.research;
public class JunitMail
{
public static void main(String[] args)throws Exception
{
SendMail sendMail = new SendMail();
sendMail.sendMail("smtp.qq.com", "xxxxxx@qq.com", "xxxxxx@163.com","xxxxxx", "******",
"This is a Test <img src='http://www.hao123.com/images/logox3.gif'>", "subject");
}
}