自己写的一个用javaMail发送邮件
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
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 org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;
import com.woyo.pay.svc.common.email.SendEmailMarketingService;
/**
* 邮件营销发送邮件实现类
* @author ron.wu
* @date 2014-2-17 am 11:40:29
*/
@Service("sendEmailMarketingService")
public class SendEmailMarketingServiceImpl implements SendEmailMarketingService {
// log
private static final Log log = LogFactory.getLog(SendEmailMarketingServiceImpl.class);
private final static String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
private final static String default_charset = "UTF-8";
@Override
public void sendTestEmail(String smtp, String port, final String emailFrom,
final String emailPwd,String showName,Integer isSSL) throws Exception {
//创建session 实例
Session session = getSession(smtp, port, isSSL, emailFrom, emailPwd);
//创建MimeMessage实例对象
MimeMessage msg=new MimeMessage(session);
//设置自定义发件人昵称
String nick="";
try {
nick = MimeUtility.encodeText(showName);
} catch (UnsupportedEncodingException e) {
log.error("发件人昵称设置失败", e);
}
//设置发件人信息
msg.setFrom(new InternetAddress (emailFrom,nick));
//设置收件人信息(给发件人自己发送邮件)
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(emailFrom));
//设置发送日期
msg.setSentDate(new Date());
//设置邮件主题
msg.setSubject("XXX 测试邮件");
//设置邮件正文
msg.setText("这是在测试您的帐户设置时,XXX自动发送的电子邮件。 ");
Transport.send(msg);
}
@Override
public void sendHtmlEmail(String smtp, String port,Integer isSSL,final String emailFrom,final String emailPwd,
String showName,String emailTo,String subject,String emailContent) throws Exception {
//创建session实例
Session session = getSession(smtp, port, isSSL, emailFrom, emailPwd);
//创建MimeMessage实例对象
MimeMessage msg=new MimeMessage(session);
//以html形式发送邮件
msg.addHeader("Content-type", "text/html");
//设置自定义发件人昵称
String nick="";
try {
nick = MimeUtility.encodeText(showName);
} catch (UnsupportedEncodingException e) {
log.error("发件人昵称设置失败", e);
}
//设置发件人信息
msg.setFrom(new InternetAddress (emailFrom,nick));
//设置收件人信息
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(emailTo));
//设置发送日期
msg.setSentDate(new Date());
//设置邮件主题
msg.setSubject(subject);
Multipart mp = new MimeMultipart();
MimeBodyPart contentPart = new MimeBodyPart();
contentPart.setContent("<meta http-equiv=Content-Type content=text/html; charset="+default_charset+">"+emailContent,"text/html;charset="+default_charset);
mp.addBodyPart(contentPart);
msg.setContent(mp);
Transport.send(msg);
}
private Session getSession(String smtp,String port,Integer isSSL,final String emailFrom,final String emailPwd){
Properties props = new Properties();
//创建信件服务器
props.put("mail.smtp.host", smtp);
props.put("mail.smtp.auth", "true");
props.put("mail.transport.protocol", "smtp");
if(isSSL.intValue() == 1){
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", port);
props.put("mail.smtp.port", port);
}
//得到默认的对话信息
Authenticator authenticator = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(emailFrom, emailPwd);
}
};
//创建session实例
Session session = Session.getInstance(props, authenticator);
return session;
}
}