gpt4 book ai didi

c# - 在 .net 中使用 SmtpClient 发送邮件

转载 作者:IT王子 更新时间:2023-10-29 04:39:30 26 4
gpt4 key购买 nike

我无法使用 smtp 客户端发送邮件。这是代码:

SmtpClient client=new SmtpClient("Host");
client.Credentials=new NetworkCredential("username", "password");
MailMessage mailMessage = new MailMessage();
mailMessage.from="sender@gmail.com";
mailMessage.To.Add("recipient@gmail.com");
mailMessage.body="body";
mailMessage.subject="subject";
client.Send(mailMessage);

问题是当我在 ASP.NET 应用程序中使用这段代码时,我没有收到任何邮件。在 asp.net 中,我将发件人邮件地址更改为 NetworkCredential 中给出的用户名时,我收到了邮件。

但在 C# windows 应用程序中,我可以收到电子邮件,即使发件人的电子邮件地址无效。

最佳答案

我发现在设置 <html><span class="diff-delete">UseDefaultCredentials = false</span></html> 之前设置 SmtpClient Credentials 属性. UseDefaultCredentials = false导致凭据被忽略。

失败:

SmtpClient smtp = new SmtpClient;
smtp.Credentials = new NetworkCredential("user","pass");
smtp.UseDefaultCredentials = false;

作品:

SmtpClient smtp = new SmtpClient;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("user","pass");

去图吧。

**更新**

这里顺序很重要的原因是 UseDefaultCredentials 上的 setter 属性实际上设置了 Credentialsnull通过反编译代码:

/// <summary>Gets or sets a <see cref="T:System.Boolean" /> value that controls whether the <see cref="P:System.Net.CredentialCache.DefaultCredentials" /> are sent with requests.</summary>
/// <returns>
/// <see langword="true" /> if the default credentials are used; otherwise <see langword="false" />. The default value is <see langword="false" />.</returns>
/// <exception cref="T:System.InvalidOperationException">You cannot change the value of this property when an e-mail is being sent.</exception>
public bool UseDefaultCredentials
{
get
{
return this.transport.Credentials is SystemNetworkCredential;
}
set
{
if (this.InCall)
throw new InvalidOperationException(SR.GetString("SmtpInvalidOperationDuringSend"));
this.transport.Credentials = value ? (ICredentialsByHost) CredentialCache.DefaultNetworkCredentials : (ICredentialsByHost) null;
}
}

关于c# - 在 .net 中使用 SmtpClient 发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2470645/

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