发送不带附件的邮件,欢迎大家提意见并扩展成带附件的.
第一部分
:
public class EmailAuthenticator
extends Authenticator {
private String username;
private String password;
public void check(String usr, String pswd) {
this.username = usr;
this.password = pswd;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
第二部分:
/**
*
* <p>Title: 263营帐管理系统</p>
* <p>Description:<b>邮件发送公用类\uFFFD/b>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: ZTEsoft</p>
* @author luo.yanqing
* @version 1.0
*/
public class MailSend {
private Log log = LogFactory.getLog(getClass());
private static Properties props = null;
/* session object */
private static Session mailsession = null;
/* mail object */
private static MimeMessage mess = null;
//实际会从配置文件读
private String sender = ReferenceConst.mailSender;
private String senderName = ReferenceConst.mailSenderName;
private String host = ReferenceConst.mailHost;
private String usr = ReferenceConst.mailUsr;
private String pwd = ReferenceConst.mailPwd;
/**
* 使用默认的发送者和服务器发送邮件
* @param info String
* @param subject String
* @param receiver String
*/
public StringBuffer sendEmail(String info, String subject, String receiver) {
//不需要验证
//sendEmail(host, info, subject, sender, receiver);
//需要验证
StringBuffer error = new StringBuffer();
error = sendEmail(host, usr, pwd, info, subject, sender, receiver);
return error;
}
/**
* @function 发送邮件的实现(邮件服务器不需要验证)
* @param server 邮件服务器IP地址
* @param info 邮件的内容
* @param subject 邮件的主题
* @param sender 邮件的发送者
* @param receiver 邮件的接收者
* @return null
*/
public StringBuffer sendEmail(String server, String info, String subject,
String sender, String receiver) {
if (log.isInfoEnabled()) {
log.info("MailSend.sentEmail(不需验证) start");
}
StringBuffer error = new StringBuffer();
props = new Properties();
props.put("mail.smtp.host", server);
mailsession = Session.getDefaultInstance(props, null);
try {
MimeMessage mailmess = new MimeMessage(mailsession);
mailmess.setSubject(subject, "GB2312");
mailmess.setContent(info, "text/plain;charset=GB2312");
InternetAddress from = new InternetAddress(sender, senderName, "GB2312");
mailmess.setFrom(from);
InternetAddress tod = new InternetAddress(receiver);
mailmess.setRecipient(Message.RecipientType.TO, tod);
Transport transport = mailsession.getTransport("smtp");
//System.out.println("begin connect");
transport.connect(server, "", "");
transport.send(mailmess);
transport.close();
}
catch (MessagingException me) {
if (log.isInfoEnabled()) {
log.debug("MailSend.sentEmail(不需验证) threw Exception");
log.debug(me.getMessage());
}
error.append("mailsent.error");
}
catch (Exception ex) {
if (log.isInfoEnabled()) {
log.debug("MailSend.sentEmail(不需验证) threw Exception");
log.debug(ex.getMessage());
}
error.append("mailsent.error");
}
if (log.isInfoEnabled()) {
log.info("MailSend.sentEmail(不需验证) end");
}
return error;
}
/**
* @function 发送邮件的实现(邮件服务器需要验证)
* @param server 邮件服务器IP地址
* @param usr 邮件服务器用户
* @param psd 邮件服务器密码
* @param info 邮件的内容
* @param subject 邮件的主题
* @param sender 邮件的发送者
* @param receiver 邮件的接收者
* @return null
*/
public StringBuffer sendEmail(String server, String usr, String psd,
String info,
String subject, String sender, String receiver) {
if (log.isInfoEnabled()) {
log.info("MailSend.sentEmail(需验证) start");
}
StringBuffer error = new StringBuffer();
props = new Properties();
props.put("mail.smtp.host", server);
props.put("mail.smtp.auth", "true");
EmailAuthenticator auth = new EmailAuthenticator();
auth.check(usr, psd);
mailsession = Session.getDefaultInstance(props, auth);
try {
MimeMessage mailmess = new MimeMessage(mailsession);
mailmess.setSubject(subject, "GB2312");
mailmess.setContent(info, "text/plain;charset=GB2312");
InternetAddress from = new InternetAddress(sender, senderName, "GB2312");
mailmess.setFrom(from);
InternetAddress tod = new InternetAddress(receiver);
mailmess.setRecipient(Message.RecipientType.TO, tod);
Transport transport = mailsession.getTransport("smtp");
//System.out.println("begin connect");
transport.connect(server, "", "");
transport.send(mailmess);
transport.close();
}
catch (MessagingException me) {
if (log.isInfoEnabled()) {
log.debug("MailSend.sentEmail(需验证) threw Exception");
log.debug(me.getMessage());
}
error.append("mailsent.error");
}
catch (Exception ex) {
if (log.isInfoEnabled()) {
log.debug("MailSend.sendEmail(需验证) threw Exception");
log.debug(ex.getMessage());
}
error.append("mailsent.error");
}
if (log.isInfoEnabled()) {
log.info("MailSend.sendEmail(需验证)end");
}
return error;
}
/**
* @function 验证邮件地址的有效性的实现
* @param strmail 邮件地址 如"[email protected]"
* @return boolean
* @roseuid 4157E1DD002E
*/
public boolean mailvaliade(String strmail) {
if (log.isInfoEnabled()) {
log.info(" MailSend.mailvaliade start");
}
Pattern p = Pattern.compile("\\w+@(\\w+.)+[a-z]{2,3}");
Matcher m = p.matcher(strmail);
boolean b = m.matches();
if (log.isInfoEnabled()) {
log.info("MailSend.mailvaliade end");
}
return b;
}
}
使用JAVAMAIL 发邮件.
猜你喜欢
转载自xixiyanqi.iteye.com/blog/1505834
今日推荐
周排行