您的位置:首页 > 编程语言 > Java开发

工具类:java 邮件发送

2016-08-13 16:11 393 查看
摘要: java 邮件发送

package com.dgy.demo;

import java.util.Calendar;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

/**
*
* 邮件发送工具类
*
* @author dgy
*
*/
public class E_MailUtil {

@SuppressWarnings("static-access")
/**
*
* @param smtpHost
*            为邮件smtp地址 QQ:smtp.qq.com
* @param from
*            发送者账户
* @param fromUserPassword
*            发送者密码
* @param to
*            发送给谁
* @param subject
*            邮件主题
* @param messageText
*            邮件内容
* @param messageType
*            邮件类型
* @throws MessagingException
*/
public boolean sendMessage(String smtpHost, String from, String fromUserPassword, String to, String subject,
String messageText, String messageType) throws MessagingException {
try {
// 第一步:配置javax.mail.Session对象
Properties props = new Properties();
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.starttls.enable", "true");// 使用 STARTTLS安全连接
// props.put("mail.smtp.port", "25"); //google使用465或587端口
props.put("mail.smtp.auth", "true"); // 使用验证
// props.put("mail.debug", "true");
Session mailSession = Session.getInstance(props, new MyAuthenticator(from, fromUserPassword));

// 第二步:编写消息
InternetAddress fromAddress = new InternetAddress(from);
InternetAddress toAddress = new InternetAddress(to);

MimeMessage message = new MimeMessage(mailSession);

message.setFrom(fromAddress);
message.addRecipient(RecipientType.TO, toAddress);

message.setSentDate(Calendar.getInstance().getTime());
message.setSubject(subject);
message.setContent(messageText, messageType);

// 第三步:发送消息
Transport transport = mailSession.getTransport("smtp");
transport.connect(smtpHost, from, fromUserPassword);
transport.send(message, message.getRecipients(RecipientType.TO));
return true;
} catch (Exception e) {
return false;
}
}

public static void main(String[] args) {
try {
E_MailUtil em = new E_MailUtil();
boolean flag = em.sendMessage("smtp.qq.com", "1256@qq.com", "*******", "1254@qq.com", "你好", "有意联系1254",
"text/html;charset=gb2312");
System.out.println(flag);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}

/**
*
* 密码验证类。 javax.mail.Authenticator是一个抽象类,
* 我们要写MyAuthenticator的密码验证类,该类继承Authenticator实现
*
*/
class MyAuthenticator extends Authenticator {
String userName = "";
String password = "";

public MyAuthenticator() {
}

public MyAuthenticator(String userName, String password) {
this.userName = userName;
this.password = password;
}

protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: