2

次のコードを使用してメールを送信しようとしています。

//create the mail message
MailMessage mail = new MailMessage(from, to);

//set the content
mail.Subject = "This is a test email";
mail.Body = "this is the body content of the email.";

//send the message
string server = "smtp01.xyz.net";
SmtpClient smtp = new SmtpClient(server);
smtp.Credentials = new NetworkCredential(username, password); 
smtp.EnableSsl = enablessl;
try
{
    smtp.Send(mail);
}
catch (Exception ex)
{
    Exception ex2 = ex;
    string errorMessage = string.Empty;
    while (ex2 != null)
    {
        errorMessage += ex2.ToString();
        ex2 = ex2.InnerException;
    }
    Console.WriteLine(errorMessage);
}

結果のスタックトレースは次のとおりです。

System.Net.Mail.SmtpException: Failure sending mail. ---> System.FormatException: Smtp server returned an invalid response.
   at System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer, Int32 offset, Int32 read, Boolean readLine)
   at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
   at System.Net.Mail.ReadLinesCommand.Send(SmtpConnection conn)
   at System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port)
   at System.Net.Mail.SmtpClient.Send(MailMessage message)

ポート25でサーバーにtelnetで接続すると、応答は次のようになります。

220 smtp01.xyz.net ESMTP Postfix
EHLO test.com
250-smtp01.xyz.net
250-STARTTLS
250-SIZE 30000000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

EnableSslを設定してみましたが、設定していません。

無効と思われる対応とは何かわかりませんか?

4

2 に答える 2

1

ひょっとして、ASP.net MVC を使用していますか? その場合は、サーバーの SMTP サーバー設定が、Views フォルダーにある web.config ではなく、アプリケーションのルートにある正しい web.config で宣言/定義されていることを確認してください。

于 2012-05-09T20:45:31.440 に答える
0

この問題は、メールボックスではなくメールで始まるサーバー名を指定したことが原因でした。指定された SMTP サーバーが問題の原因であったにもかかわらず、SmtpClient の構築は、私が試した他のいくつかのサーバーで行ったように例外をスローしなかったため、このエラーは私を驚かせました。エラー メッセージを見ると、送信しているものに問題があるように見えますが、少なくとも私の場合は、指定された SMTP サーバーでした。

于 2014-11-26T23:09:49.590 に答える