SmtpClient 发送没有认证

Posted

技术标签:

【中文标题】SmtpClient 发送没有认证【英文标题】:SmtpClient sending without authentication 【发布时间】:2012-07-28 00:07:11 【问题描述】:

我正在通过 Java 向我们的客户发送电子邮件。我们的 SMTP 没有任何身份验证。所以我在Java中使用以下代码无需身份验证即可发送:

Properties props = new Properties();
Session session;
props.put("mail.smtp.auth", "false");
session = Session.getInstance(props, null);

此代码适用于从 Java 发送电子邮件。但我想使用 ASP.NET 和 C# 发送电子邮件。但我无法发送。为了使用 C# 发送它,我使用以下代码:

SmtpClient smtp = new SmtpClient();
smtp.Host = "<My smtp.Host>";
smtp.EnableSsl = false;
smtp.Credentials = CredentialCache.DefaultNetworkCredentials;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Send(message);

但它给了我以下错误:

SMTP 服务器需要安全连接,或者客户端没有 认证。服务器响应为:5.7.1 不允许中继:&lt;Here email address of To&gt;

不认证如何发送?

【问题讨论】:

【参考方案1】:

来自 Msdn。 If the UseDefaultCredentials property is set to false and the Credentials property has not been set, then mail is sent to the server anonymously.

【讨论】:

我不明白。我应该设置哪个属性来发送它而不进行身份验证? 你完全删除smtp.Credentials = ...,并将UseDefaultCredentials设置为false。 那么你的服务器不允许中继,这意味着只有本地服务器可以发送邮件,或者只有一个已知的用户。

以上是关于SmtpClient 发送没有认证的主要内容,如果未能解决你的问题,请参考以下文章

C# 使用 SmtpClient 发送带有内联图像的邮件

如何使用 SmtpClient.SendAsync 发送带有附件的电子邮件?

c# SmtpClient 类无法使用 gmail 发送电子邮件

为啥 MailKit SmtpClient.Send() 失败时我没有收到异常?

使用第三方与投递文件夹时 SMTPClient 发送限制为 50 封电子邮件

SmtpClient 发送邮件