![](/img/trans.png)
[英]Troubleshooting "Mailbox unavailable. The server response was: Access denied - Invalid HELO name" when sending email with SmtpClient
[英]Troubleshooting “421 Connection not accepted at this time” error when sending email with SmtpClient
我正在嘗試使用我的isp發送4封電子郵件。 (不是JUNK MAIL,我發送到我的地址)
我從循環中逐個發送它們(因為我構建它們)。 每條消息都是50kb-80kb
MailMessage mailmessage = new MailMessage();
mailmessage.To.Add(to);
mailmessage.From = new MailAddress(from, "From");
mailmessage.IsBodyHtml = true;
mailmessage.Priority = MailPriority.Normal;
mailmessage.Subject = subject;
mailmessage.Body = body;
SmtpClient smtpclient = new SmtpClient(server, 25); //use this PORT!
smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpclient.Credentials = new NetworkCredential(user, pass);
smtpclient.Send(mailmessage);
在上一條消息中,我收到此錯誤:
服務不可用,關閉傳輸通道。 服務器響應為:此時不接受連接
更新:
出現此錯誤后的某些時間,即使從Outlook Express等其他應用程序發出的電子郵件,我也無法發送任何電子郵件(使用此服務器),但出現錯誤:
出現未知錯誤。 帳戶:'MailServerAddress',服務器:'MailServerAddress'',協議:SMTP,服務器響應:'421此時不接受連接',端口:25,安全(SSL):否,服務器錯誤:421,錯誤號碼:0x800CCC67
大約一分鍾后,我可以再次發送。
始終確保您的發件人地址也是一個有效的郵箱,以便退回郵件實際上會返回給您,許多ISP完全禁止使用其他(未注冊)發件人地址。 正如其他人的評論所指出的那樣,ISP通常還會限制速率,因此您必須將發送代碼微調到ISP的期望,這可能很乏味。
一般來說,出於某種原因發送電子郵件既是藝術又是科學。 如果您嘗試將其用於生產系統,則只能建議您使用某些服務,例如SendGrid或Mailgun 。 即使您的郵件服務器接受了郵件,它也可能會在另一個ISP郵件服務器上達到限制,因為大多數ISP都有一定的限制,並且電子郵件路由非常復雜。 另外,您可能會很快點擊垃圾郵件過濾器。 對於我的ISP,無論出於何種原因,自動郵件總是在googlemail中發送垃圾郵件。
為了開發,Mailgun每天免費提供200封電子郵件,這在開始時應該足夠了。 另外,SMTP是一種非常慢的協議,因此使用其HTTP接口將為您節省一些服務器時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.