Java邮件发送的例子,网上一搜能搜一大把。很多好的例子是值得学习和借鉴的。前段时间研究了一些关于邮件的发送的功能,参考网上的一些资料,自己也试着做了一个邮件发送的小工具。现在将邮件发送的核心代码贴出来和大伙分享。
package com.test.mail;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
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.MimeUtility;
public class MailDemo {
private static final String EMAILLOGIN = "邮箱地址";
private static final String EMAILPASSWORD = "邮箱密码";
private static final String EMAILSMTP = "smtp.qq.com";
private static final String NICKNAME = "青年工作室";
static Authenticator auth = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(EMAILLOGIN, EMAILPASSWORD);
}
};
public static void main(String[] args) {
sendEmailQuickly();
}
public static void sendEmailQuickly(){
// 创建一个属性对象
Properties props = new Properties();
//指定SMTP服务器地址
props.put("mail.smtp.host", EMAILSMTP);
//指定是否需要SMTP验证
props.put("mail.smtp.auth", "true");
props.put("mail.from", EMAILLOGIN);
// 创建会话,将Properties配置内容放入Session中
Session session = Session.getInstance(props);
try {
// 创建一个Message对象
MimeMessage msg = new MimeMessage(session);
// 设置邮件发件人(发送人昵称<发送人邮件地址>)
msg.setFrom(new InternetAddress(MimeUtility.encodeText(NICKNAME)+"<"+EMAILLOGIN+">"));
// 设置邮件发送时间
msg.setSentDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-09-16 16:12:00"));
// 设置邮件收件人
msg.setRecipients(Message.RecipientType.TO, "收件人邮箱地址");
// 设置邮件的主题
msg.setSubject("JavaMail 测试邮件");
// 设置邮件的内容(超文本形式)
msg.setContent("Hello, world!<br/>这是一封测试的邮件。<br/>来自KerryPak<br/><span style='color:#ccc'>此信为系统邮件,请不要直接回复。</span>","text/html;charset=utf-8");
//设置邮件内容(文本形式)
// msg.setText("Hello, world!\n这是一封测试的邮件。\n此信为系统邮件,请不要直接回复。\n来自KerryPak");
//指定邮件的优先级 1:紧急 3:普通 5:缓慢
msg.setHeader("X-Priority", "3");
//创建一个传输对象
Transport trans=session.getTransport("smtp");//协议
//连接SMTP服务器
trans.connect("smtp.qq.com",EMAILLOGIN, EMAILPASSWORD);//这里是发件人的邮箱用户名和密码(我的密码就先隐藏啦)
trans.sendMessage(msg,msg.getAllRecipients());
trans.close();
} catch (MessagingException mex) {
System.out.println("send failed, exception: " + mex);
} catch (ParseException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
当然咯,邮件的发送方法有很多,我写的这只是其中一种。 我写的这个多多少少和网上的有些出入,但是基本实现的方式大体上类同,只需要你在使用的时候稍稍的改造封装就可以了。
Java邮件发送依赖的工具Jar包是 javax.mail.jar ,没有这个包的朋友可以百度或者直接M我;如果有使用Maven的朋友们可以使用我贴出来的dependency。
<!-- 邮件服务支撑包 --> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.5.4</version> </dependency>
你这主题,浓浓的cnblog即视感,Java风格~
哈哈~~~~
从百度点进来的,支持一下