J2EE常用工具类——邮件处理类(javaMail发送邮件)

[复制链接]
查看11 | 回复8 | 2017-9-26 13:06:30 | 显示全部楼层 |阅读模式
发送附件的功能没有做,实现了身份验证,和SSL安全链接功能。欢迎大家建议改进。
更多常用工具类访问我的网站:http://www.jshuwei.org.cn
package cn.org.jshuwei.j2ee.util;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
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;
/**
* javaMail发送邮件工具类
*
* @author huwei(jshuwei.org.cn)
* @since 1.4
*/
public class MailUtil {

/**
* 发送邮件
*
* @param mailServerHost
*
邮件服务器地址
* @param mailServerPort
*
邮件服务器端口
* @param validate
*
是否要求身份验证
* @param fromAddress
*
发送邮件地址
* @param toAddress
*
接收邮件地址
* @param subject
*
邮件主题
* @param content
*
邮件内容
* @param isHTML
*
是否是html格式邮件
* @param isSSL
*
邮件服务器是否需要安全连接(SSL)
* @return true:发送成功;false:发送失败
*/

public static boolean sendMail(String mailServerHost,

String mailServerPort, boolean validate, String fromAddress,

String userPass, String toAddress, String subject, String content,

boolean isHTML, boolean isSSL) {

Properties p = new Properties();

p.put("mail.smtp.host", mailServerHost);

p.put("mail.smtp.port", mailServerPort);

p.put("mail.smtp.auth", validate ? "true" : "false");

if (isSSL) {

p.put("mail.smtp.starttls.enable", "true");

p.put("mail.smtp.socketFactory.fallback", "false");

p.put("mail.smtp.socketFactory.port", mailServerPort);

}

Authenticator auth = null;

if (validate) {

auth = new myAuthenticator(fromAddress, userPass);

}

try {

Session session = Session.getDefaultInstance(p, auth);

Message message = new MimeMessage(session);

Address from = new InternetAddress(fromAddress);

Address to = new InternetAddress(toAddress);

message.setFrom(from);

message.setRecipient(Message.RecipientType.TO, to);

message.setSubject(subject);

message.setSentDate(new Date());

if (isHTML) {

Multipart m = new MimeMultipart();

BodyPart bp = new MimeBodyPart();

bp.setContent(content, "text/html; charset=utf-8");

m.addBodyPart(bp);

message.setContent(m);

} else

message.setText(content);

Transport.send(message);

return true;

} catch (Exception e) {

e.printStackTrace();

return false;

}

}

// public static void main(String[] args) {

// System.out

// .println(MailUtil

// .sendMail(

// "smtp.live.com",

// "25",

// true,

// "[email protected]",

// "xxxxxxxxxxxxxx",

// "[email protected]",

// "test",

// "尊敬的用户:jshuwei,您于"

// + new Date()

// +

// "使用了找回密码功能,请点击链接修改密码。请慎重保管注册密码!\n\n\n测试系统\n\n\n\n\n发送时间:"

// + new Date(), true, true));

// }
}
class myAuthenticator extends Authenticator {

String userName;

String userPass;

public myAuthenticator() {

}

public myAuthenticator(String userName, String userPass) {

this.userName = userName;

this.userPass = userPass;

}

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(userName, userPass);

}
}
复制代码
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
nice job
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
靠,这是啥?
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
学习了
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
路过
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
飘过
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
原帖由 chenzhen232 于 2009-10-1 22:16 发表
飘过



回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
谢谢啦..
回复

使用道具 举报

千问 | 2017-9-26 13:06:30 | 显示全部楼层
原帖由 gs80140 于 2009-10-9 11:05 发表
谢谢啦..

keqi
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行