gpt4 book ai didi

c# - 通过 SMTP 发送电子邮件失败 : MailBox name not allowed

转载 作者:太空狗 更新时间:2023-10-30 01:20:48 33 4
gpt4 key购买 nike

我正在尝试通过 SMTP 服务器发送电子邮件,但失败并出现以下错误:

MailBox name not allowed. The server response was Senders must have valid reverse DNS

enter image description here不幸的是我找不到有意义的信息来解决问题

这是我的方法:

public void SendSmtp()
{
try
{
using (MailMessage message = new MailMessage())
{
message.From = new MailAddress("some@email.com");
message.To.Add(new MailAddress("other@email.com"));


message.Subject = "subject";
message.Body = "body";
message.IsBodyHtml = true;

// NetworkCredential basicCredential = new NetworkCredential("test@test.com", "password");
try
{
using (SmtpClient client = new SmtpClient())
{
client.Host = "mail.host.com";
client.Port = 25;
client.UseDefaultCredentials = true;
// client.Credentials = basicCredential;
client.Send(message);
MessageBox.Show("Success!!");
}

}

finally
{
//dispose the client
message.Dispose();
}

}
}
catch (SmtpFailedRecipientsException ex)
{
for (int i = 0; i < ex.InnerExceptions.Length; i++)
{
SmtpStatusCode status = ex.InnerExceptions[i].StatusCode;
if (status == SmtpStatusCode.MailboxBusy ||
status == SmtpStatusCode.MailboxUnavailable)
{
Console.WriteLine("Delivery failed - retrying in 5 seconds.");
System.Threading.Thread.Sleep(5000);
//client.Send(message);
}
else
{
Console.WriteLine("Failed to deliver message to {0}",
ex.InnerExceptions[i].FailedRecipient);
}
}
}
}

当我在不同的服务器或我的本地机器上尝试时,效果很好,我不确定为什么。我设置了我的 SMTP 授权访问我的服务器。请指教。

最佳答案

该错误是您的代码尝试连接到的 SMTP 服务器的直接响应。您的客户端计算机没有有效的反向 DNS 映射(例如 127.0.0.1 -> localhost),因此 SMTP 服务器拒绝连接。

它可能像您的客户端将自己标识为 example.com 一样简单,但是当 SMTP 服务器进行反向查找时,服务器的 IP 返回为 system-1-2 -3.4.hostingprovider.com 或类似网站。

关于c# - 通过 SMTP 发送电子邮件失败 : MailBox name not allowed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17754200/

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