c# - .NET SMTP 邮件 - 错误 = helo 命令被拒绝需要完全限定的主机名

标签 c# smtp hostname fully-qualified-naming

我正在尝试在 .NET 控制台应用程序中发送电子邮件。我有一个带有 i.P. 的 SMTP 服务器。地址 X.X.X.X(已 sanitizer 以保护无辜者)。

已设置 SMTP 服务器(已配置中继)以允许来自托管 .NET 控制台应用程序的服务器发送电子邮件,并将该电子邮件发送到外部世界。

我已经使用托管控制台应用程序的服务器的 telnet 对此进行了测试。我使用 SMTP 服务器的 I.P 从托管控制台应用程序的服务器成功发送了一封带有 telnet 控制台的电子邮件。地址。使用 telnet 时不需要身份验证。我没有获得任何连接凭据。

但是当我尝试在 .NET 应用程序中执行此操作时,出现以下错误:

Syntaz error, command unrecognized. The server response was: : Helo command rejected: need fully-qualified hostname

这是我的代码:

string mailMessagetest = "test";
        string subjecttest = "test";
        List<string> recipienttest = new List<string>();
        recipienttest.Add("me@mydomain.com");

        utility.SendMail(recipienttest, subjecttest, mailMessagetest);

这里是 SendMail 函数:

        public static void SendMail(List<string> recipient, string subject, string message)
    {
        MailMessage mailMessage = new MailMessage();
        mailMessage.From = new MailAddress("myfriend@mydomain.com");

        foreach (string to in recipient)
        {
            mailMessage.To.Add(to);
        }

        mailMessage.Subject = subject;
        mailMessage.Body = message;

        SmtpClient client = new SmtpClient();
        client.Host = "X.X.X.X";
        client.Port = 25;
        client.Send(mailMessage);
    }

最佳答案

将主机名从 IP 地址更改为其名称,例如“smtp.provider.com”或其内部“mailserver.domain”。

更新:

尝试阅读此 system.net.mail.smtpclient fqdn required还有这个the FQDN is not sent when you send a HELO or EHLO .

关于c# - .NET SMTP 邮件 - 错误 = helo 命令被拒绝需要完全限定的主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13062562/

相关文章:

iis - 我应该如何将排队的邮件从 IIS 移动到不同服务器上的 Exchange?

python - 在没有别名发件人的情况下发送重复的电子邮件

python - SMTP 邮件客户端 Python

node.js - 将 TCP 客户端的主机名发送到 Node JS 中的服务器

linux - 在 Linux 服务器上触发主机名 "withsometest"时会发生什么

c# - Java中的包等于C#中的包?

c# - AutoMapper 展平相同类型的复杂对象

c# - NHibernate - 如何从多对多关系中删除一个项目?

php - 使用javaScript在linux环境下的Intranet中获取客户端主机名

c# - Parallel.ForEach 错误 HttpContext.Current