簡體   English   中英

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM