我正在尝试在.NET控制台应用程序中发送电子邮件。我有一个SMTP服务器,其i.P.地址为X.X.X.X(已经过处理以保护隐私)。
SMTP服务器已设置(中继已配置),以允许来自托管.NET控制台应用程序的服务器发送电子邮件到外部世界。
我已经通过托管控制台应用程序的服务器使用telnet进行了测试。我成功地使用SMTP服务器的I.P.地址从托管控制台应用程序的服务器上的telnet控制台发送了电子邮件。不需要使用telnet时进行身份验证。我没有收到任何连接凭据。
但是当我尝试在.NET应用程序中执行此操作时,出现以下错误:
语法错误,命令无法识别。服务器响应为::Helo命令被拒绝:需要完全限定的主机名
这是我的代码:
SMTP服务器已设置(中继已配置),以允许来自托管.NET控制台应用程序的服务器发送电子邮件到外部世界。
我已经通过托管控制台应用程序的服务器使用telnet进行了测试。我成功地使用SMTP服务器的I.P.地址从托管控制台应用程序的服务器上的telnet控制台发送了电子邮件。不需要使用telnet时进行身份验证。我没有收到任何连接凭据。
但是当我尝试在.NET应用程序中执行此操作时,出现以下错误:
语法错误,命令无法识别。服务器响应为::Helo命令被拒绝:需要完全限定的主机名
这是我的代码:
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);
}