.NET コンソール アプリケーションで電子メールを送信しようとしています。私はIPアドレスXXXXのSMTPサーバーを持っています(罪のない人を保護するためにサニタイズされています)。
SMTP サーバーは、.NET コンソール アプリをホストしているサーバーからの電子メールを許可し、その電子メールを外部に送信するようにセットアップされています (リレーが構成されています)。
コンソール アプリをホストしているサーバーから telnet でこれをテストしました。SMTP サーバーの IP アドレスを使用して、コンソール アプリをホストしているサーバーから telnet コンソールでメールを送信することに成功しました。telnet を使用する場合、認証は必要ありません。接続資格情報が与えられていません。
しかし、.NET アプリで実行しようとすると、次のエラーが発生します。
Syntaz エラー、コマンドを認識できません。サーバーの応答は次のとおりです: : 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);
}