2012-08-22 118 views
10

發送電子郵件所以我有一個試圖發送電子郵件這個很基本的程序,但我不斷收到「5.7.1客戶端沒有權限」的錯誤,同時從代碼

郵箱無法使用。服務器響應爲:5.7.1客戶端不 有權限發送的該發件人

這是我的計劃

static void Main(string[] args) 
{ 
    SmtpClient client = new SmtpClient("Server", 25); 
    client.UseDefaultCredentials = false; 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.Credentials = new NetworkCredential("UserName", "Password"); 
    client.Send(new MailMessage("[email protected]","Recipient")); 
} 

我知道憑據工作,如果我運行SMTP測試工具3.0相同的數據一切都很好。

enter image description here

這裏是設置爲我的IP交換服務器

enter image description here

enter image description here

任何人有任何的想法會是什麼導致這對接收連接器上的一些屏幕截圖錯誤在我的代碼中,但不在簡單的SMTP測試工具中?我是否缺少某種身份驗證選項?我已經四次檢查了所有信息在兩個地方都是正確和相同的,它在工具中工作,但不在代碼中。

回答

10

我發現了這個問題,我需要勾選「接受任何發件人」框以通過身份驗證的用戶。

enter image description here

點擊此處瞭解詳情:http://technet.microsoft.com/en-us/library/aa997170(EXCHG.140).aspx

+1

這完全救了我。萬分感謝!此外,它的價值 - 這種能力與我們的Exchange 2003框一起工作良好。當我們更新到2010年時,它停止工作。這導致我這篇文章。「接受任何發件人」選項必須是Ex2010中的新選項,或者在升級時重置該選項。 –

+0

謝謝!我需要在客戶端前端連接器和客戶端代理連接器上執行此操作! – partyd

3

我知道這個線程是很老,但我得到了同樣的麻煩,已經抓我的頭很長一段時間。 在我的情況下,郵件服務器不接受「外來」發件人,例如,如果您在@ sample.com域中,可能無法從「[email protected]」發送郵件,因爲服務器會拒絕此與5.7.1錯誤。所以,這裏有兩件事很重要:1)正確的證書將被用於連接到服務器; 2)「From」字段的值,因爲您的服務器可以拒絕來自屬於另一個域的發件人的郵件。 換句話說,如果您在@ sample.com域中,請嘗試添加此以及新的MailMessage {From =「[email protected]」}。

+1

將發件人地址設置爲與發送證件相同。幫助了我。謝謝 – Muhammedh

-1

我認爲你必須設置UseDefaultCredentials爲true:看PowerShell代碼

#SMTP server name 
$smtpServer = "abcd.com.au" 

#Creating a Mail object 
$msg = new-object Net.Mail.MailMessage 

#Creating SMTP server object 
$smtp = new-object Net.Mail.SmtpClient($smtpServer) 
$smtp.UseDefaultCredentials = $true 
0

我有同樣的問題。我在一個單獨的控制檯應用程序中測試了SMTP設置,它工作正常。一些google搜索後,我意識到我的問題是,我曾在我的配置中指定的從地址兩次,一次是事實:

<smtp deliveryMethod="Network" from="[email protected]"> 

並以我的代碼:

mail.From = new MailAddress("[email protected]"); 

從地址從拆除代碼解決了這個問題。

相關問題