![](/img/trans.png)
[英]Unable to send email to other domains using System.Net.Mail.SmtpClient
[英]SmtpClient - Send to different domains
我有一個指向我公司郵件服務器的 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("myAddress@myCompany.com")
};
email.To.Add(new MailAddress("myAddress@live.ca"));
mailClient.Send(email);
Web.config 代碼
<system.net>
<mailSettings>
<smtp>
<network host="mail.myCompany.com" port="25" userName="myAddress@myCompany.com" password="myPassword" defaultCredentials="false"/>
</smtp>
</mailSettings>
更新:
我已經使用以下方法使其工作:
1) 網頁配置
<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 切換到 Shaw 時,代碼停止工作。 我們認為 Shaw 可能阻塞了我們的 Exchange Server 上的一個端口。
這是一篇文章,解釋了使用端口 587 在域外發送電子郵件:http: //mostlygeek.com/tech/smtp-on-port-587
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.