阿里雲服務器不能發郵件禁用25端口的三種解決方法


分享使人快樂,遇到的坑通過博文分享給大家,總結解決辦法使更多的人節省寶貴的時間去干其他的事,於是我決定寫下了這篇博文;

阿里雲發送SMTP郵件失敗   阿里雲服務器不能發郵件解決方法 ,第三種方法是可以不用25端口,配置465端口阿里雲發送郵件是成功的,現在阿里雲25端口管理的很嚴要申請通過難度太大,我申請成功過,也申請失敗過,最近后面申請的都失敗了,我后面就直接用第三種方法配置465端口就可以用

第一種方法:

公司最近上了一台阿里雲服務器,我部署完系統后發現郵件發送不了,啊,怎么會發不了郵件呢?於是找原因發現是阿里雲服務器把郵件的默認25端口給禁用掉了為的是不讓郵件泛濫,

好吧,於是我想怎么去解封25端口,找了下官方的資料,看懂了但是沒有找到對應的菜單在哪里,那個25端口解封功能隱藏的太深,費了好大個功能終於是找到了,上個圖,說下菜單的是如何點擊到25端口解封功能的,以下是解封的步驟:

阿里雲服務器不能發郵件解決方法

第一步:鼠標移上右上角貴司 阿里雲賬號【南京XXXX】 上, 這個賬號就在 【簡體中文】功能左邊第一個;

第二步:點擊【安全管控】;

第三步:點擊 【25端口解封】

第四步:點擊【25端口解封申請】

第五步:填寫申請的 IP和對應的郵箱域名,這里注意的是  服務器IP一定要是 阿里雲賬號下的服務器,域名的話,不同供應商不同的域名,客戶是自己買的阿里雲郵箱,郵箱域名是:mail.zhsiwei.com 配置是成功,qq郵箱可以填寫 mail.qq.com就是用qq郵箱去發送郵件,qq的大家可以去試試這個域名對不,smtp.qq.com配置申請不成功,126郵箱,雅虎郵箱,這里就不一一羅列,可以去對應的郵箱里面找下就好,切記這個郵箱域名很重要配置不好審核就通不過。

阿里雲服務器不能發郵件解決方法

 

第六步:填寫申請表單

阿里雲服務器不能發郵件解決方法

第七步:填寫之后確定后就靜靜的等待阿里雲客服審核一般最多7個工作日就好了

第二種方法:

方法來源:https://blog.csdn.net/u013571196/article/details/78376343

想到阿里雲喜歡用安全組屏蔽端口,於是我就趕緊去配置了安全規則。進站出站都配置了,結果還是不行,然后索性把防火牆也關了,依舊不行。經過一番折騰,發現阿里自帶屏蔽25端口。簡直尷尬,后來找了阿里的一些規則文檔,發現需要申請開通屏蔽端口。但是經過咨詢了阿里工作人員,發現現在已經不開放25端口,因為什么《互聯網信息服務管理辦法》、《中國互聯網協會反垃圾郵件規范》均對垃圾郵件進行說明與管理規范。讓我考慮SSL加密SMTP通過465端口進行發件。然后試了一波,發現465發送不了QQ郵件,嘗試了587端口成功了。

System.Net.Mail 空間的代碼如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public  static  bool  SendTheMail( string  strto,  string  subj,  string  bodys)
{
SmtpClient _smtpClient =  new  SmtpClient();
_smtpClient.EnableSsl =  true ;
_smtpClient.UseDefaultCredentials =  false ;
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
_smtpClient.Host =  "smtp.qq.com" ;
_smtpClient.Port = 587;
_smtpClient.Credentials =  new  System.Net.NetworkCredential( "aaa@qq.com" "666" );
//密碼不是QQ密碼,是qq賬戶設置里面的POP3/SMTP服務生成的key
 
MailMessage _mailMessage =  new  MailMessage( "aaa@qq.com" "888@yeah.net" );
_mailMessage.Subject = subj; //主題 
_mailMessage.Body = bodys; //內容
_mailMessage.BodyEncoding = Encoding.Default; //正文編碼 
_mailMessage.IsBodyHtml =  true ; //設置為HTML格式 
_mailMessage.Priority = MailPriority.High; //優先級 
 
try
{
_smtpClient.Send(_mailMessage);
Console.WriteLine( "發送成功" );
return  true ;
}
catch  (Exception e)
{
Console.WriteLine( "發送失敗" );
throw  e;
}
}

 第三種方法:

這個方式是官方給的,主要是通過System.Web.Mail.MailMessage來實現發送,大家把這個方法放到自己的項目里面調用就好

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/// <summary>
/// 通過System.Web.Mail.MailMessage去發送,可以不被阿里雲限制25端口的使用
/// 暫時一般都用465端口
/// </summary>
/// <param name="smtpserver">SMTP服務,譬如:smtp.126.com</param>
/// <param name="userName">發件箱</param>
/// <param name="pwd">密碼</param>
/// <param name="nickName">昵稱</param>
/// <param name="strfrom">發件箱</param>
/// <param name="strto">收件箱</param>
/// <param name="MessageSubject">主題</param>
/// <param name="MessageBody">內容</param>
/// <param name="SUpFile">附件</param>
/// <param name="port">端口</param>
/// <param name="enablessl">SSL加密</param>
/// <returns></returns>
public  static  bool  SendWebEmail( string  smtpserver,  string  userName,  string  pwd,  string  nickName,  string  strfrom,  string  strto,
     string  MessageSubject,  string  MessageBody,  string  SUpFile,  int  port,  int  enablessl = 0)
{
     System.Web.Mail.MailMessage mmsg =  new  System.Web.Mail.MailMessage();
     //郵件主題
     mmsg.Subject = MessageSubject;
     mmsg.BodyFormat = System.Web.Mail.MailFormat.Html;
     //郵件正文
     mmsg.Body = MessageBody;
     //正文編碼
     mmsg.BodyEncoding = Encoding.UTF8;
     //優先級
     mmsg.Priority = System.Web.Mail.MailPriority.High;
 
     System.Web.Mail.MailAttachment data =  null ;
     if  (SUpFile !=  "" )
     {
         SUpFile = HttpContext.Current.Server.MapPath(SUpFile); //獲得附件在本地地址
         System.Web.Mail.MailAttachment attachment =  new  System.Web.Mail.MailAttachment(SUpFile);  //create the attachment
         mmsg.Attachments.Add(attachment);  //add the attachment
     }
     //發件者郵箱地址
     mmsg.From =  string .Format( "\"{0}\"<{1}>" ,nickName, strfrom);
 
     //收件人收箱地址
     mmsg.To = strto;
     mmsg.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" "1" );
     //用戶名
     mmsg.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sendusername" , userName);
     //密碼 不是郵箱登陸密碼 而是郵箱設置POP3/SMTP 時生成的第三方客戶端授權碼
     mmsg.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sendpassword" , pwd);
     //端口
     mmsg.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" , port);
     //使用SSL
     mmsg.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" , (enablessl == 1 ?  "true"  "false" ));
     //Smtp服務器
     System.Web.Mail.SmtpMail.SmtpServer = smtpserver;
     try
     {
         System.Web.Mail.SmtpMail.Send(mmsg);
     }
     catch  (Exception ex)
     {
         LogHelper.Error(ex.ToString());
         return  false ;
     }
     return  true ;
}

阿里雲發送SMTP郵件失敗,阿里雲服務器不能發送郵件,其中注意的是填寫的密碼不是郵箱登陸密碼 而是郵箱設置POP3/SMTP 時生成的第三方客戶端授權碼,

 

 

原文:https://www.cnblogs.com/axinno1/p/8303130.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM