POP3/SMTP協議
接收郵件服務器:pop.exmail.qq.com ,使用SSL,端口號995
發送郵件服務器:smtp.exmail.qq.com ,使用SSL,端口號465
海外用戶可使用以下服務器
接收郵件服務器:hwpop.exmail.qq.com ,使用SSL,端口號995
發送郵件服務器:hwsmtp.exmail.qq.com ,使用SSL,端口號465
IMAP協議
接收郵件服務器:imap.exmail.qq.com ,使用SSL,端口號993
發送郵件服務器:smtp.exmail.qq.com ,使用SSL,端口號465
海外用戶可使用以下服務器
接收郵件服務器:hwimap.exmail.qq.com ,使用SSL,端口號993
發送郵件服務器:hwsmtp.exmail.qq.com ,使用SSL,端口號465
不需要郵箱授權碼 騰訊企業郵箱只需要賬號密碼就可以發送郵件
編寫java代碼:這裏只是作爲測試使用下面直接貼出我寫代碼 直接把賬號密碼改爲你的就可以直接運行 需要導入mail.jar
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
如果jdk用的是1.8版本會出現SSL錯誤:這個問題是jdk導致的,jdk1.8裏面有一個jce的包,安全性機制導致的訪問https會報錯,官網上有替代的jar包,如果替換掉就可以了.
這兩個jar包的下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
下載之後,把這個壓縮文件解壓,得到兩個jar包去覆蓋jdk安裝目錄下的jre\lib\security\下相同的jar包就能解決java8的郵件發送問題。
public static void main(String[] args) throws Exception {
Properties prop = new Properties();
//協議
prop.setProperty("mail.transport.protocol", "smtp");
//服務器
prop.setProperty("mail.smtp.host", "smtp.exmail.qq.com");
//端口
prop.setProperty("mail.smtp.port", "465");
//使用smtp身份驗證
prop.setProperty("mail.smtp.auth", "true");
//使用SSL,企業郵箱必需!
//開啓安全協議
MailSSLSocketFactory sf = null;
try {
sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
} catch (GeneralSecurityException e1) {
e1.printStackTrace();
}
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf);
//
//獲取Session對象
Session s = Session.getDefaultInstance(prop,new Authenticator() {
//此訪求返回用戶和密碼的對象
@Override
protected PasswordAuthentication getPasswordAuthentication() {
PasswordAuthentication pa = new PasswordAuthentication("你的賬號", "密碼");
return pa;
}
});
//設置session的調試模式,發佈時取消
s.setDebug(true);
MimeMessage mimeMessage = new MimeMessage(s);
try {
mimeMessage.setFrom(new InternetAddress("你的賬號","你的賬號"));
mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("接收賬號"));
//設置主題
mimeMessage.setSubject("主題");
mimeMessage.setSentDate(new Date());
//設置內容
mimeMessage.setText("正文內容");
mimeMessage.saveChanges();
//發送
Transport.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
作者:earin
鏈接:https://www.jianshu.com/p/da4d0137893a
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。