2015-12-05 69 views
3

我用C#在ASP.net中創建了一個網頁。當這個按鈕點擊需要發送郵件時,我已經放了一個按鈕。但是,當我點擊這個按鈕得到這個例外: - System.Net.Mail.SmtpException:事務失敗。服務器響應是:5.7.1:中繼訪問在System.Net.Mail.RecipientCommand.CheckResponse(SmtpStatusCode statusCode,String response)上被拒絕System.Net.Mail.SmtpTransport.SendMail(MailAddress sender,MailAddressCollection recipients,String deliveryNotify,Boolean在System.Net.Mail.SmtpClient.Send(MailMessage消息)位於c:\ Users \ jay.desai \ Documents \ Visual Studio 2013 \ WebSites \ WebSite2中的_Default.Button1_Click(對象發件人,EventArgs e)處,允許使用Unicode,SmtpFailedRecipientException &異常) \ Default.aspx.cs:行47無法使用C#使用ASP.net從SMTP服務器發送郵件#

請參考下面的代碼: -

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Net.Mail; 
using System.Net; 
using System.Security.Cryptography; 
using System.Security.Cryptography.X509Certificates; 
using System.Net.Security; 

public partial class _Default : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 

} 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    try 
     { 
      MailMessage mail = new MailMessage(); 
      mail.From = new MailAddress("[email protected]"); 
      mail.Subject = "Pallet Shortage Emergency"; 
      mail.To.Add("[email protected]"); 
      mail.Body ="Only 100 pallets are availabe in ASRS. This is system generated mail do not reply";   
      mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; 
      SmtpClient smtp = new SmtpClient("rmta010.zmail.ril.com",25); 
      smtp.EnableSsl = true; 
      smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
      smtp.UseDefaultCredentials = false; 
      System.Net.NetworkCredential("[email protected]", "1234");    
      ServicePointManager.ServerCertificateValidationCallback = 
      delegate(object s, X509Certificate certificate, 
      X509Chain chain, SslPolicyErrors sslPolicyErrors) 
      { return true; }; 
      smtp.Send(mail); 

     } 
     catch (Exception ex) 
     { 
      Response.Write(ex.ToString()); 
     } 

} 

}

+0

嘗試使用管理員權限運行您的程序。 –

+0

@MaximGoncharuk同樣的問題 –

+0

看看這個[link](http://forums.asp.net/t/1908812.aspx?Relay+access+denied+at+System+Net+Mail+RecipientCommand+CheckResponse+only+with +一些+電子郵件) –

回答

0

服務器錯誤表示它不會中繼消息。通常,這意味着您需要先向服務器進行身份驗證,然後才允許您發送電子郵件,或者它只會接受來自特定源域的郵件。

如果你總是要發送到一個電子郵件域,那麼你通常可以使用註冊的MX服務器的域名。在這種情況下(ril.com),MX服務器列表包含幾個主要郵件服務器,但對我來說第一個是:gwhydsmtp010.ril.com。如果您的網站託管在郵件服務器所在的網絡之外,我會嘗試將它作爲目標郵件服務器。在服務器通常可以解決大部分的5.7.1錯誤

SmtpClient smtp = new SmtpClient("rmta010.zmail.ril.com",25); 
smtp.UseDefaultCredentials = false; 
smtp.Credentials = new NetworkCredential("username", "password"); 

記錄:

或者你可以提供SMTP登錄憑據SmtpClient對象是這樣的。

如果您在Exchange服務器上擁有管理員權限,最後一種方法是設置SMTP連接器以允許從特定源地址(您的Web服務器)進行中繼。不過我不會推薦這個,因爲任何公開接力都是一個壞主意(tm)。

+0

我沒有得到你的第一個技巧。我將發送郵件到一個域的電子郵件,即ril.com。在這種情況下我需要做什麼?你能否詳細說明一下。第二種技術是行不通的。 –

+0

您確定您使用了適用於該服務的帳戶嗎?什麼是zmail?它與O365有關嗎?爲什麼使用該郵件服務器而不是郵件交換器(MX)DNS記錄中列出的郵件服務器? – Corey

+0

**[email protected]**帳戶有效我可以通過此帳戶的outlook發送郵件。每當我配置Outlook我手動輸入**發送郵件服務器(SMTP)** ==> ** rmta010.zmail.ril.com **。它與O365無關。 –

相關問題