我有一個我指向我公司的郵件服務器的SmtpClient。我能夠在該域名上成功發送電子郵件地址。SmtpClient - 發送到不同的域
但是,我需要爲應用的用戶執行密碼重置和通知。這些用戶使用自己的電子郵件地址(多個不同的域)註冊。
如何發送電子郵件給不同域的用戶?每次嘗試(使用我的live.ca電子郵件)時,出現以下錯誤:
SmtpFailedRecipientsException - 郵箱不可用。服務器響應爲:5.7.1無法中繼
C#代碼
SmtpClient mailClient = new SmtpClient();
MailMessage email = new MailMessage
{
Subject = "Testing Mail",
Body = "Testing Mail",
From = new MailAddress("[email protected]")
};
email.To.Add(new MailAddress("[email protected]"));
mailClient.Send(email);
的Web.config代碼
<system.net>
<mailSettings>
<smtp>
<network host="mail.myCompany.com" port="25" userName="[email protected]" password="myPassword" defaultCredentials="false"/>
</smtp>
</mailSettings>
更新:
我得到它的工作使用以下方法:
1)的Web.config
<network host="mail.myCompany.com" port="25" userName="myNetworkUsername" password="myPassword" defaultCredentials="false" />
2)C#代碼
mailClient.Credentials = new NetworkCredential("myNetworkUsername", "myPassword");
// or
mailClient.Credentials = CredentialCache.DefaultNetworkCredentials;
第二行使用的是誰的憑據登錄了。它爲本地主機工作,但不是當我部署它。
我正在考慮創建一個默認帳戶來處理應用程序的郵件並將用戶名/密碼放在網絡配置中,但這看起來並不像最安全的做法。我仍在研究替代方案。
更新:
的代碼停止時,我公司跳槽我們的ISP邵氏工作。我們認爲肖可能會阻止我們的Exchange Server上的端口。
你可能想看看這個問題:http://stackoverflow.com/questions/444210/how-do- i-send-emails-outside-my-domain-with-exchange-2007-and-c-sharp – 2012-02-28 01:16:31
這不是你的代碼的問題,它是你公司的SMTP服務器的限制。要麼讓他們放鬆你可以發送的域名,要麼使用不同的服務器。 – Joe 2012-02-28 01:18:29
只是一個猜測,但嘗試使用端口587. – 2012-02-28 01:37:18