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

文章轉載至:https://www.cnblogs.com/axinno1/p/8303130.html

阿里雲發送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("[email protected]""666");

//密碼不是QQ密碼,是qq賬戶設置裏面的POP3/SMTP服務生成的key

 

MailMessage _mailMessage = new MailMessage("[email protected]""[email protected]");

_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);

    //密碼

    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;

}

  自己親測試過可以用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章