使用JavaMail发送邮件,465端口开启ssl加密传输
生活随笔
收集整理的這篇文章主要介紹了
使用JavaMail发送邮件,465端口开启ssl加密传输
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
自己的項目在本地發郵件沒任何問題。但部署到服務器,發送郵件顯示連接異常。原來是云服務器出于安全考慮,關閉了服務器的25端口,而25端口是smtp的默認端口。所以使用465端口開啟ssl加密傳輸
代碼:
package cn.lzhhuo.login_register.util;import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.security.Security; import java.util.Date; import java.util.Properties;public class MailUtil {/*** 使用加密的方式,利用465端口進行傳輸郵件,開啟ssl* @param to 為收件人郵箱* @param message 發送的消息*/public static void sendEmil(String to, String message) {try {Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";//設置郵件會話參數Properties props = new Properties();//郵箱的發送服務器地址props.setProperty("mail.smtp.host", "smtp.qq.com");props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);props.setProperty("mail.smtp.socketFactory.fallback", "false");//郵箱發送服務器端口,這里設置為465端口props.setProperty("mail.smtp.port", "465");props.setProperty("mail.smtp.socketFactory.port", "465");props.put("mail.smtp.auth", "true");final String username = " ";final String password = " ";//獲取到郵箱會話,利用匿名內部類的方式,將發送者郵箱用戶名和密碼授權給jvmSession session = Session.getDefaultInstance(props, new Authenticator() {protected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(username, password);}});//通過會話,得到一個郵件,用于發送Message msg = new MimeMessage(session);//設置發件人msg.setFrom(new InternetAddress(username));//設置收件人,to為收件人,cc為抄送,bcc為密送msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(to, false));msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(to, false));//設置郵件消息msg.setSubject("激活郵件");msg.setText(message);//設置發送的日期msg.setSentDate(new Date());//調用Transport的send方法去發送郵件Transport.send(msg);} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) throws Exception { // 做測試用String content="點擊激活";MailUtil.sendEmil(" @qq.com",content);System.out.println("發送成功");} }可能出現的問題:
無法連接到SMTP主機:smtp.qq.com,端口:465:
pom.xml配置錯了:
使用默認25端口發送郵件
也可以參照以上來改動端口
總結
以上是生活随笔為你收集整理的使用JavaMail发送邮件,465端口开启ssl加密传输的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tomcat8+在maven中热部署
- 下一篇: Windows10怎么在当前目录,打开c