java 邮件发送代码

package com.iumbra.mail;

public class SimpleMail {

/** 邮件主题. */
private String subject;
/** 邮件的文本内容(可以用Html设置格式). */
private String content;
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}


package com.iumbra.mail;

import java.util.List;
import java.util.Properties;

import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SimpleMailSender {
/**
* 发送邮件的props文件
*/
private final transient Properties props = System.getProperties();
/**
* 邮件服务器登录验证
*/
private transient MailAuthenticator authenticator;

/**
* 邮箱session
*/
private transient Session session;

/**
* 初始化邮件发送器
* @param smtpHostName
*            SMTP邮件服务器地址
* @param username
*            发送邮件的用户名(地址)
* @param password
*            发送邮件的密码
*/
public SimpleMailSender(final String smtpHostName, final String username,
final String password) {
init(username, password, smtpHostName);
}

/**
* 初始化邮件发送器
* @param username
*            发送邮件的用户名(地址),并以此解析SMTP服务器地址
* @param password
*            发送邮件的密码
*/
public SimpleMailSender(final String username, final String password) {
// 通过邮箱地址解析出smtp服务器,对大多数邮箱都管用
final String smtpHostName = "smtp." + username.split("@")[1];
init(username, password, smtpHostName);

}

/**
* 初始化
* @param username
*            发送邮件的用户名(地址)
* @param password
*            密码
* @param smtpHostName
*            SMTP主机地址
*/
private void init(String username, String password, String smtpHostName) {
// 初始化props
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", smtpHostName);
// 验证
authenticator = new MailAuthenticator(username, password);
// 创建session
session = Session.getInstance(props, authenticator);
}

/**
* 发送邮件
* @param recipient
*            收件人邮箱地址
* @param subject
*            邮件主题
* @param content
*            邮件内容
* @throws AddressException
* @throws MessagingException
*/
public void send(String recipient, String subject, Object content)
throws AddressException, MessagingException {
// 创建mime类型邮件
final MimeMessage message = new MimeMessage(session);
// 设置发信人
message.setFrom(new InternetAddress(authenticator.getUsername()));
// 设置收件人
message.setRecipient(RecipientType.TO, new InternetAddress(recipient));
// 设置主题
message.setSubject(subject);
// 设置邮件内容
message.setContent(content.toString(), "text/html;charset=utf-8");
// 发送
Transport.send(message);
}

/**
* 群发邮件
* @param recipients
*            收件人们
* @param subject
*            主题
* @param content
*            内容
* @throws AddressException
* @throws MessagingException
*/
public void send(List<String> recipients, String subject, Object content)
throws AddressException, MessagingException {
// 创建mime类型邮件
final MimeMessage message = new MimeMessage(session);
// 设置发信人
message.setFrom(new InternetAddress(authenticator.getUsername()));
// 设置收件人们
final int num = recipients.size();
InternetAddress[] addresses = new InternetAddress[num];
for (int i = 0; i < num; i++) {
addresses[i] = new InternetAddress(recipients.get(i));
}
message.setRecipients(RecipientType.TO, addresses);
// 设置主题
message.setSubject(subject);
// 设置邮件内容
message.setContent(content.toString(), "text/html;charset=utf-8");
// 发送
Transport.send(message);
}

/**
* 发送邮件
* @param recipient
*            收件人邮箱地址
* @param mail
*            邮件对象
* @throws AddressException
* @throws MessagingException
*/
public void send(String recipient, SimpleMail mail)
throws AddressException, MessagingException {
send(recipient, mail.getSubject(), mail.getContent());
}

/**
* 群发邮件
* @param recipients
*            收件人们
* @param mail
*            邮件对象
* @throws AddressException
* @throws MessagingException
*/
public void send(List<String> recipients, SimpleMail mail)
throws AddressException, MessagingException {
send(recipients, mail.getSubject(), mail.getContent());
}
}


package com.iumbra.mail;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

public class MailAuthenticator extends Authenticator{
/**
* 用户名(登录邮箱)
*/
private String username;
/**
* 密码
*/
private String password;

/**
* 初始化邮箱和密码
* @param username
*            邮箱
* @param password
*            密码
*/
public MailAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}

String getPassword() {
return password;
}

@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}

String getUsername() {
return username;
}

public void setPassword(String password) {
this.password = password;
}

public void setUsername(String username) {
this.username = username;
}
}
package com.iumbra.mail;

import java.util.ArrayList;
import java.util.List;

import javax.mail.MessagingException;

public class MailEntry {

public static void main(String[] args) {
for (; ; ) {
SimpleMailSender sms = new SimpleMailSender("smtp.126.com",
"zhubajiezbjz@126.com", "zbj123456");
List<String> list = new ArrayList<String>();
list.add("yanghh_alvin@sina.com");
list.add("461055191@qq.com");
// list.add("jinhua_1989@126.com");
list.add("812291743@qq.com");
SimpleMail sm = new SimpleMail();
sm.setSubject("内容标题");
sm.setContent("<a href=\" http://www.baidu.com\"><strong>百度知道</strong></a><p>链接格式文本</p>");
try {
sms.send(list, sm);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值