package
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
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 org.apache.log4j.Logger;
public class EmailUtil {
private Logger log = Logger.getLogger(EmailUtil.class);
private String host;
private String username;
private String password;
private String fromEmail;
public EmailUtil(String host, String username, String password,
String fromEmail) {
this.host = host;
this.username = username;
this.password = password;
this.fromEmail = fromEmail;
}
public EmailUtil() {
}
/**
* 发送邮件
*
* @param receiverEmail
* @param subject
* @param mailContent
*/
public boolean sendMail(String[] receiverEmail, String subject,
String mailContent,String host,String fromEmail,String username,String password) {
try {
Properties props = new Properties();// 创建属性对象
props.put("mail.smtp.host", host);// 设置smtp服务器地址
props.put("mail.smtp.auth", "true");// 设置服务器smtp需要验证
props.put("mail.from", fromEmail);
javax.mail.Session session = javax.mail.Session.getInstance(props,
null);// 创建新邮件并群发
// Session session = Session.getDefaultInstance(props);
// session.setDebug(true);
MimeMessage message = new MimeMessage(session);// 创建过程对象
message.setSentDate(new Date());// 设置时间
InternetAddress[] address = new InternetAddress[receiverEmail.length]; // 群发地址
for (int i = 0; i < receiverEmail.length; i++) { // 循环发送
address[i] = new InternetAddress(receiverEmail[i]);
}
message.setRecipients(Message.RecipientType.TO, address);
message.setSubject(subject);// 设置主题
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setContent(mailContent, "text/html;charset=utf-8");// 设置信件内容
multipart.addBodyPart(contentPart);
message.setContent(multipart);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
return true;
} catch (Exception e) {
// log.error(e.getMessage(), e);
e.printStackTrace();
return false;
}
}
/*
*
*
*/
public static boolean nowSendMail(String email ,String content) {
// boolean b = false;
try {
Properties prop = new Properties();
String base =Thread.currentThread().getContextClassLoader().getResource("").getPath();
// System.out.println(base);
// base = base.substring(1, base.length());
// System.out.println(base);
InputStream in = new BufferedInputStream (new FileInputStream(base + "email.properties"));
prop.load(in);
String host = prop.getProperty("host");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
String fromEmail = prop.getProperty("fromemail");
String title =new String(prop.getProperty("title").getBytes("ISO8859-1"),"UTF-8");
EmailUtil eh = new EmailUtil();
boolean sendFlag = eh.sendMail(new String[] { email }, title,content,host,fromEmail,username,password);
if(!sendFlag){
return false;
}
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
public static void main(String[] args) {
EmailUtil.nowSendMail("xx@163.com", "测试内容");
}
}
email.properties:
host=smtp.163.com username=xxxx password=xxxx fromemail=xxx@163.com