java傳送郵件例項
阿新 • • 發佈:2018-11-07
JavaMail傳送郵件到qq郵箱:前提是QQ郵箱裡帳號設定要開啟POP3/SMTP協議,步驟如下:
1. 登陸你的QQ即可,找到QQ郵箱圖示。
2.進入郵箱後後點選設定。
3.找到賬戶。
4.往下拉將POP3/SMTP開啟。
5.開啟後會給你一個授權碼,授權碼要記下來,後面的程式碼要用。
接下來就是程式碼了
首先在pom檔案中加入 javaemail 的依賴:
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
程式碼如下:
import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import com.sun.mail.util.MailSSLSocketFactory; /** * JavaMail傳送郵件:前提是QQ郵箱裡帳號設定要開啟POP3/SMTP協議 */ public class SendEmail { public static void main(String[] args) throws Exception { Properties prop = new Properties(); // 開啟debug除錯,以便在控制檯檢視 prop.setProperty("mail.debug", "true"); // 設定郵件伺服器主機名 prop.setProperty("mail.host", "smtp.qq.com"); // 傳送伺服器需要身份驗證 prop.setProperty("mail.smtp.auth", "true"); // 傳送郵件協議名稱 prop.setProperty("mail.transport.protocol", "smtp"); // 開啟SSL加密,否則會失敗 MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); prop.put("mail.smtp.ssl.enable", "true"); prop.put("mail.smtp.ssl.socketFactory", sf); // 建立session Session session = Session.getInstance(prop); // 通過session得到transport物件 Transport ts = session.getTransport(); // 連線郵件伺服器:郵箱型別,帳號,授權碼代替密碼(更安全) // 後面的字元是授權碼,用qq密碼反正我是失敗了(用自己的,別用我的,這個號是我瞎編的,為了。。。。) ts.connect("smtp.qq.com", "1130013558", "xqmoijbeswstbacf"); // 建立郵件 Message message = createSimpleMail(session); // 傳送郵件 ts.sendMessage(message, message.getAllRecipients()); ts.close(); } public static MimeMessage createSimpleMail(Session session) throws Exception { // 建立郵件物件 MimeMessage message = new MimeMessage(session); // 指明郵件的發件人 message.setFrom(new InternetAddress("[email protected]")); // 指明郵件的收件人,現在發件人和收件人是一樣的,那就是自己給自己發 message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); // 郵件的標題 message.setSubject("JavaMail測試"); // 郵件的文字內容 message.setContent("JavaMail傳送郵件的內容!", "text/html;charset=UTF-8"); // 返回建立好的郵件物件 return message; } }