阿里云服务器发送邮件失败?连接超时?25端口被封?
生活随笔
收集整理的這篇文章主要介紹了
阿里云服务器发送邮件失败?连接超时?25端口被封?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
大家好,我是烤鴨:
之前用阿里云服務器的時候發送126企業郵箱,用的smtp方式,但是一直超時。百思不得其解。因為在本地環境是可以的。
原來是阿里云服務器限制了25端口。問了126郵箱那邊的技術客服,只支持25端口。
問了阿里云的售后,他們說25端口不開放。可以考慮463端口或者他們的郵箱服務。
真是會賺錢啊。之后研究了一下,還是可以的。
(一)開通服務
? ?阿里云的服務器可以直接開通郵件服務,每天200封免費。
也沒什么麻煩的。直接開通了。
(二)創建域名
(三)查看域名配置
點開上圖的配置:(由于我的已經驗證通過了,所以狀態是驗證通過)
四(添加域名解析)
打開控制臺的云解析DNS,按照上圖的配置4個逐一添加即可。
五(驗證)
等幾分鐘再回到之前的域名列表頁面,點擊驗證即可。
還不懂的看官方文檔吧。
https://help.aliyun.com/knowledge_detail/36723.html
六(創建發件郵箱)
七(代碼實現java)
package com.mys.my.app.util;import com.adobe.xmp.impl.Base64; import net.sf.json.JSONObject;import javax.mail.Message; import javax.mail.Message.RecipientType; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Properties;public class SendMail {String username = "xxxxxxx"; //由哪個郵箱發送郵件,就是在郵箱控制臺創建的發信地址String name="測試";String password = "xxxxxx"; //發信地址的SMTP密碼private Message getMessage() {Properties p = new Properties();p.put("mail.smtp.host", "smtpdm.aliyun.com");? ?//阿里云smtp服務器地址p.put("mail.smtp.auth", "true");p.put("mail.smtp.name", "測試");p.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");p.put("mail.smtp.socketFactory.port", "465");p.put("mail.smtp.port", "465");MyAuthor auth = new MyAuthor(username, password);Session session = Session.getDefaultInstance(p, auth);Message message = new MimeMessage(session);return message;}public void sendVerify(String url,String stu_email, String randomNum,String mobile, String singn) throws Exception{//拼接驗證郵箱地址??address = url + address;Message message = getMessage();System.out.println("sendVerify:"+message);//設置自定義發件人昵稱? ??String nick=javax.mail.internet.MimeUtility.encodeText("測試");? ??//設置發件人message.setFrom(new InternetAddress(nick+" <"+username+">"));?//設置收件人message.setRecipient(RecipientType.TO, new InternetAddress(stu_email));System.out.println("stu_email:"+stu_email);//設置發件時間message.setSentDate(new Date());//設置標題message.setSubject("測試");//拼接接口參數Map<String,String> map=new HashMap<String,String>();map.put("randomNum", randomNum);map.put("mobile", mobile);map.put("email", stu_email);map.put("singn", singn);JSONObject paramsJson=JSONObject.fromObject(map);System.out.println("paramsJson:"+paramsJson);//對參數進行encodeString base64Params=Base64.encode(paramsJson.toString());System.out.println("base64Params:"+base64Params);String m="<div style='margin:10px auto;padding:10px;max-width:800px;font-size: 14px;'>測試測試測試測試</div>";//設置發送正文message.setContent(m, "text/html;charset=gb2312");System.out.println(message.getSentDate());//發送郵件Transport.send(message);}public static void main(String[] args) {SendMail send=new SendMail();try {send.sendVerify("","xxxxxxx@qq.com ", "","","");} catch (Exception e) {e.printStackTrace();}} }
總結
以上是生活随笔為你收集整理的阿里云服务器发送邮件失败?连接超时?25端口被封?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Axure RP 9(附授权码+安装教程
- 下一篇: 【Qt开发】Qt Creator在Win