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

代码详解java发送邮件

2014-06-10 22:56 337 查看
转自:http://blog.csdn.net/duanml61/article/details/8306290

不废话了,今天早上写了个java发送邮件服务类,直接看源码:

[java] view
plaincopy





package dec;

import java.util.Properties;

import javax.mail.Message;

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;

/**

*

*

* <p>Title: Java发送邮件测试类 /p>

*

* <p>Description: 示例 业务类</p>

*

* <p>Copyright: Copyright (c) 2012</p>

*

*

* @author dml@2012-12-17

* @version 1.0

*/

/****************************************************************

* 对QQ邮箱使用(对于其他的使用类似的你应该也会更改了) 首先把QQ邮箱的POP3 SMTP打开 首先确定你的网络正常、非代理

* 【确定你的QQ邮箱开启了SMTP】!!!! 如果没有开启,那么这样设置下 设置->账户 --在下面-- 把这个选上 [√]SMTP发信后保存到服务器

****************************************************************/

public class JavaMail {

// 设置服务器

private static String KEY_SMTP = "mail.smtp.host";

private static String VALUE_SMTP = "smtp.qq.com";

// 服务器验证

private static String KEY_PROPS = "mail.smtp.auth";

private static boolean VALUE_PROPS = true;

// 发件人用户名、密码

private String SEND_USER = "********@qq.com";

private String SEND_UNAME = "********";

private String SEND_PWD = "*******";

// 建立会话

private MimeMessage message;

private Session s;

/*

* 初始化方法

*/

public JavaMail() {

Properties props = System.getProperties();

props.setProperty(KEY_SMTP, VALUE_SMTP);

props.put(KEY_PROPS, VALUE_PROPS);

s = Session.getInstance(props);

/* s.setDebug(true);开启后有调试信息 */

message = new MimeMessage(s);

}

/**

* 发送邮件

*

* @param headName

* 邮件头文件名

* @param sendHtml

* 邮件内容

* @param receiveUser

* 收件人地址

*/

public void doSendHtmlEmail(String headName, String sendHtml,

String receiveUser) {

try {

// 发件人

InternetAddress from = new InternetAddress(SEND_USER);

message.setFrom(from);

// 收件人

InternetAddress to = new InternetAddress(receiveUser);

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

// 邮件标题

message.setSubject(headName);

String content = sendHtml.toString();

// 邮件内容,也可以使纯文本"text/plain"

message.setContent(content, "text/html;charset=GBK");

message.saveChanges();

Transport transport = s.getTransport("smtp");

// smtp验证,就是你用来发邮件的邮箱用户名密码

transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);

// 发送

transport.sendMessage(message, message.getAllRecipients());

transport.close();

System.out.println("send success!");

} catch (AddressException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (MessagingException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

JavaMail se = new JavaMail();

se.doSendHtmlEmail("邮件头文件名", "邮件内容", "*******@***.com");

}

}

所需jar包只有一个,mail.jar

需要注意的是,执行程序前需要保证邮箱开启了SMTP,本例使用QQ邮箱进行测试,设置路径

QQ Mail Settings->Account->POP3/IMAP/SMTP Service 选中Enable POP3/SMTP services
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: