代码详解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
不废话了,今天早上写了个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
相关文章推荐
- 怎么用java发送带附件的邮件代码详解
- java发送邮件代码
- java mail的代码例子-java写的邮件发送
- Java代码发送邮件
- Spring进阶—如何用Java代码实现邮件发送(二)
- java邮件发送的实现代码
- java代码生成的带图片和附件的邮件发送实例
- java 发送邮件 email相关操作代码测试,生成复杂格式邮件,发送邮件相关操作(键人岐)
- 服务器通过模板发送邮件java代码
- java发送邮件代码,jar包
- Spring进阶—如何用Java代码实现邮件发送(一)
- java发送邮件及邮件附件代码实例v1.01
- java发送带附件的邮件的代码
- java 发送邮件的实例代码(可移植)
- java 邮件发送代码
- java发送邮件及邮件附件代码实例
- javamail代码例子-java写的邮件发送-另一种发送邮件的方法
- java代码实现邮件发送
- (Java 功能代码) Java邮件发送
- Spring进阶—如何用Java代码实现邮件发送(一)