gpt4 book ai didi

c# - SmtpClient - 发送到不同的域

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:47 26 4
gpt4 key购买 nike

我有一个指向我公司邮件服务器的 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 服务器上的一个端口。

最佳答案

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

关于c# - SmtpClient - 发送到不同的域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9474967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com