首先需要下載mail.jar文件,我個人通常是使用maven中心庫的那個:
1 <dependency> 2 <groupId>javax.mail</groupId> 3 <artifactId>mail</artifactId> 4 <version>1.4.7</version> 5 </dependency>
或者自己下載jar包, javax.mail-1.5.4.jar
地址:http://download.csdn.net/detail/sun2015_07_24/9392090
代碼如下:
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* 郵件發送工具類
*/
public class SendMailUtil {
/**
* 郵件發送的方法
*
* @param to 收件人
* @param subject 主題
* @param content 內容
* @param smtp 協議
* @param host 發送服務器服務器
* @param sendName 郵件發送人
* @param sendPort 郵件發送人端口
* @param userName 郵件發送人名
* @param userPwd 郵件發送人密碼
* @return 成功或失敗
*/
public static boolean send(String to, String subject, String content, String smtp, String host,
String sendName, String sendPort, String userName, String userPwd) {
// 第一步:創建Session
Properties props = new Properties();
// 指定郵件的傳輸協議,smtp(Simple Mail Transfer Protocol 簡單的郵件傳輸協議)
props.put("mail.transport.protocol", smtp);
// 指定郵件發送服務器服務器 "smtp.qq.com"
props.put("mail.host", host);
// 指定郵件的發送人(您用來發送郵件的服務器,比如您的163\sina等郵箱)
props.put("mail.from", sendName);
if (true) {
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.socketFactory.port", sendPort);
}
Session session = Session.getDefaultInstance(props);
// 開啟調試模式
session.setDebug(true);
try {
// 第二步:獲取郵件發送對象
Transport transport = session.getTransport();
// 連接郵件服務器,鏈接您的163、sina郵箱,用戶名(不帶@163.com,登錄郵箱的郵箱賬號,不是郵箱地址)、密碼
transport.connect(userName, userPwd);
Address toAddress = new InternetAddress(to);
// 第三步:創建郵件消息體
MimeMessage message = new MimeMessage(session);
//設置自定義發件人昵稱
String nick="";
try {
nick=javax.mail.internet.MimeUtility.encodeText("我的昵稱");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
message.setFrom(new InternetAddress(nick+" <"+sendName+">"));
//設置發信人
// message.setFrom(new InternetAddress(sendName));
// 郵件的主題
message.setSubject(subject);
//收件人
message.addRecipient(Message.RecipientType.TO, toAddress);
/*//抄送人
Address ccAddress = new InternetAddress("first.lady@whitehouse.gov");
message.addRecipient(Message.RecipientType.CC, ccAddress);*/
// 郵件的內容
message.setContent(content, "text/html;charset=utf-8");
// 郵件發送時間
message.setSentDate(new Date());
// 第四步:發送郵件
// 第一個參數:郵件的消息體
// 第二個參數:郵件的接收人,多個接收人用逗號隔開(test1@163.com,test2@sina.com)
transport.sendMessage(message, InternetAddress.parse(to));
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public static void main(String[] args) {
// 您要發送給誰,標題,內容
SendMailUtil.send("*****@qq.com", "標題", "內容", "smtp", "smtp.qq.com", "發送人名", "端口號", "用戶名", "密碼");
}
}
給參數賦值, 測試可以通過.