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