我試圖通過我們內部的Exchange 2007服務器(使用SMTP)將來自C#控制檯應用程序的自動電子郵件從機器發送到同一個域中的所有客戶端,但是我遇到了只允許經過身份驗證的發件人的分發列表。基本上我發送郵件越來越被交易所拒絕了:如何使用SmtpClient和DefaultNetworkCredentials將郵件發送到只允許通過身份驗證的發件人的通訊組列表?
#550 5.7.1 RESOLVER.RST.AuthRequired; authentication required ##rfc822;[email protected]
我使用System.Net.Mail.SmtpClient
和全權證書屬性設置爲System.Net.CredentialCache.DefaultNetworkCredentials
,但沿線的某處,該帳戶的憑據運行此程序(我,一個有效郵箱的有效域用戶)沒有正確傳遞給Exchange。
我使用System.Net.CredentialCache.DefaultNetworkCredentials
,因爲我不想硬編碼用戶名或密碼(無論是在代碼本身還是在任何配置文件中)。我希望該流程使用Windows身份驗證與我們的SMTP服務器進行身份驗證。
這是我一直在使用重現該問題(域名已經anonomized)測試程序:
using System;
using System.Net.Mail;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
var smtpClient = new SmtpClient
{
Host = "MAIL",
Port = 25,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = System.Net.CredentialCache.DefaultNetworkCredentials
};
var mailMessage = new MailMessage
{
Body = "Testing",
From = new MailAddress(Environment.UserName + "@example.com"),
Subject = "Testing",
Priority = MailPriority.Normal
};
mailMessage.To.Add("[email protected]");
smtpClient.Send(mailMessage);
}
}
}
每當我跑這是我自己(再次,我是一個有效的用戶上域,與Exchange服務器上的現有郵箱)我得到一個無法投遞退回郵件從Exchange與響應:
#550 5.7.1 RESOLVER.RST.AuthRequired; authentication required ##rfc822;[email protected]
我跟我們的Exchange服務器的管理員,他看到從Exchange服務器的EV以下錯誤耳鼻喉科日誌:
Account For Which Logon Failed:
Security ID: NULL SID
Account Name:
Account Domain:
Failure Information:
Failure Reason: Unknown user name or bad password.
Status: 0xc000006d
Sub Status: 0xC0000064
顯然是狀態代碼和子狀態代碼翻譯爲:
0xc000006d This is either due to a bad username or authentication information. Usually logged as status code with 0xc0000064 as substatus
0xC0000064 user name does not exist
,就好像沿線某處,我的Windows憑據沒有傳遞到Exchange服務器,即使我將SmtpClient.Credentials
設置爲System.Net.CredentialCache.DefaultNetworkCredentials
任何想法?
在此先感謝!
@Austin - 感謝快速編輯清理我的格式不好,你打我的一羣:-) – russcollier 2012-03-02 17:06:39
你有沒有想過通過用戶名,密碼,如果只是設置了一組個人郵件服務器或IIS上的郵件帳戶,並添加屬於該組的個人的電子郵件。你檢查到MSDN:網站 - http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.credentials.aspx – MethodMan 2012-03-02 17:20:09
我希望你可以按照我的筆記在評論//服務器是smpt.somedomain.com確定..取代您的服務器 – MethodMan 2012-03-02 17:47:50