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 不允许中继:
<Here email address of To>
不认证如何发送?
【问题讨论】:
【参考方案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 发送没有认证的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SmtpClient.SendAsync 发送带有附件的电子邮件?
c# SmtpClient 类无法使用 gmail 发送电子邮件
为啥 MailKit SmtpClient.Send() 失败时我没有收到异常?