SmtpClient - 发送到不同的域

问题描述 投票:0回答:1

我有一个 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 切换到 Shaw 时,代码停止工作。我们认为 Shaw 可能阻止了我们 Exchange 服务器上的端口。

c# email smtp dns smtpclient
1个回答
0
投票

这里有一篇文章解释了如何使用端口 587 在域外发送电子邮件:http://mostlygeek.com/tech/smtp-on-port-587

© www.soinside.com 2019 - 2024. All rights reserved.