1.spring参数注入+util 发送邮件
2.util配置参数+util发送邮件
1.spring参数注入+util 发送邮件
<bean id="mailSender" class="com.midea.ftms.util.MailSender">
<property name="host" value="${mail.smtp.host}"></property>
<property name="auth" value="${mail.smtp.auth}"></property>
<property name="user" value="${mail.user}"></property>
<property name="password" value="${mail.passwd}"></property>
<property name="from" value="${mail.from}"></property>
<property name="remindNum" value="${mail.remindnum}"></property>
<property name="debugModel" value="${mail.debug}"></property>
</bean>
import java.util.Properties; import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage; public class MailSender { private String host;
private String auth;
private String user;
private String password;
private String from;
private Integer remindNum;
private Boolean debugModel; public MailSender() { } /**
* @see 发送邮件基础方法,请遵循使用规则 MailUtil.sendMail
* @param to 邮件接收地址
* @param subject 邮件主题
* @param content 邮件内容
* @throws Exception 调用者处理异常
*/
public void send(String[] to, String subject, String content)
throws Exception {
Properties props = new Properties();
// 指定SMTP服务器
props.put("mail.smtp.host", host);
// 指定是否需要SMTP验证
props.put("mail.smtp.auth", auth);
Session mailSession = Session.getDefaultInstance(props);
// 是否在控制台显示debug信息
mailSession.setDebug(debugModel);
Message message = new MimeMessage(mailSession);
// 发件人
message.setFrom(new InternetAddress(from));
// 收件人
InternetAddress[] addresses = new InternetAddress[to.length];
for (int i = ; i < to.length; i++) {
addresses[i] = new InternetAddress(to[i]);
}
message.setRecipients(Message.RecipientType.TO, addresses);
// 邮件主题
message.setSubject("subject:"+subject);
// 邮件内容(HTML格式)
message.setContent(content, "text/html;charset=GBK");
// 保存设置,让设置生效
message.saveChanges();
// 发送
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} public String getHost() {
return host;
} public void setHost(String host) {
this.host = host;
} public String getAuth() {
return auth;
} public void setAuth(String auth) {
this.auth = auth;
} public String getUser() {
return user;
} public void setUser(String user) {
this.user = user;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getFrom() {
return from;
} public void setFrom(String from) {
this.from = from;
} public Integer getRemindNum() {
return remindNum;
} public void setRemindNum(Integer remindNum) {
this.remindNum = remindNum;
} public Boolean getDebugModel() {
return debugModel;
} public void setDebugModel(Boolean debugModel) {
this.debugModel = debugModel;
} }
public class MailUtil { private static volatile MailSender mailSender; private MailUtil() { } public static MailSender init() {
if (mailSender == null) {
synchronized (MailSender.class) {
if (mailSender == null) {
// mailSender = new MailSender();
mailSender = (MailSender)ContextUtil.getContext().getBean("mailSender");
}
}
}
return mailSender;
} public static void sendMail(String[] to, String subject, String content)
throws Exception {
MailUtil.init().send(to, subject, content);
} public static void main(String[] args) {
MailUtil.init().setAuth("true");
MailUtil.init().setDebugModel(true);
MailUtil.init().setFrom("a@b.com");
MailUtil.init().setHost("cd.com.cn");
MailUtil.init().setUser("user");
MailUtil.init().setPassword("passwd");
MailUtil.init().setRemindNum();
try {
MailUtil.sendMail(new String[]{"asdfa@qq.com","134324323@qq.com"}, "测试", "hello yoyo");
} catch (Exception e) {
e.printStackTrace();
}
} }
2.util配置参数+util发送邮件
import java.util.Properties; import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage; public class MailSendUtil { private String host;
private String auth;
private String user;
private String password;
private String from;
private Integer remindNum;
private Boolean debugModel; private volatile static MailSendUtil mailSendUtil; private MailSendUtil(){
init();
} private void init() {
host = PropertiesUtil.getProperty("mail.smtp.host");
auth = PropertiesUtil.getProperty("mail.smtp.auth");
user = PropertiesUtil.getProperty("mail.user");
password = PropertiesUtil.getProperty("mail.passwd");
from = PropertiesUtil.getProperty("mail.from");
remindNum = Integer.parseInt(PropertiesUtil.getProperty("mail.remindnum"));
debugModel = Boolean.valueOf(PropertiesUtil.getProperty("mail.debug"));
} public static MailSendUtil getInstance() {
if (mailSendUtil == null) {
synchronized (MailSendUtil.class) {
if (mailSendUtil == null) {
return new MailSendUtil();
}
}
}
return mailSendUtil;
} public static void sendMail(String[] to, String subject, String content)
throws Exception {
MailSendUtil.getInstance().send(to, subject, content);
} /**
* @see 发送邮件基础方法,请遵循使用规则 MailUtil.sendMail
* @param to 邮件接收地址
* @param subject 邮件主题
* @param content 邮件内容
* @throws Exception 调用者处理异常
*/
public void send(String[] to, String subject, String content)
throws Exception {
Properties props = new Properties();
// 指定SMTP服务器
props.put("mail.smtp.host", host);
// 指定是否需要SMTP验证
props.put("mail.smtp.auth", auth);
Session mailSession = Session.getDefaultInstance(props);
// 是否在控制台显示debug信息
mailSession.setDebug(debugModel);
Message message = new MimeMessage(mailSession);
// 发件人
message.setFrom(new InternetAddress(from));
// 收件人
InternetAddress[] addresses = new InternetAddress[to.length];
for (int i = ; i < to.length; i++) {
addresses[i] = new InternetAddress(to[i]);
}
message.setRecipients(Message.RecipientType.TO, addresses);
// 邮件主题
message.setSubject("subject:"+subject);
// 邮件内容(HTML格式)
message.setContent(content, "text/html;charset=GBK");
// 保存设置,让设置生效
message.saveChanges();
// 发送
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} }
3.遇到发送邮件正常,但是没有主题,也没有收件人的情况,请删除 geronimo-javamail_1.4_spec-1.2.jar