79

SMTP を使用してメッセージを送信する新しい ASP.NET Web アプリケーションを作成します。問題は、メッセージの送信者から smtp が認証されなかったことです。

プログラムで SMTP 認証を行うにはどうすればよいですか? C#には、ユーザー名とパスワードを入力するための属性を持つクラスがありますか?

4

6 に答える 6

161
using System.Net;
using System.Net.Mail;

using(SmtpClient smtpClient = new SmtpClient())
{
    var basicCredential = new NetworkCredential("username", "password"); 
    using(MailMessage message = new MailMessage())
    {
        MailAddress fromAddress = new MailAddress("from@yourdomain.com"); 

        smtpClient.Host = "mail.mydomain.com";
        smtpClient.UseDefaultCredentials = false;
        smtpClient.Credentials = basicCredential;

        message.From = fromAddress;
        message.Subject = "your subject";
        // Set IsBodyHtml to true means you can send HTML email.
        message.IsBodyHtml = true;
        message.Body = "<h1>your message body</h1>";
        message.To.Add("to@anydomain.com"); 

        try
        {
            smtpClient.Send(message);
        }
        catch(Exception ex)
        {
            //Error, could not send the message
            Response.Write(ex.Message);
        }
    }
}

上記のコードを使用できます。

于 2008-11-18T10:29:40.580 に答える
7

メッセージを送信する前にCredentialsプロパティを設定します。

于 2008-11-18T10:32:23.070 に答える
1

どのようにメッセージを送信しますか?

System.Net.Mail名前空間のクラス(おそらくこれを使用する必要があります) は、Web.config で指定されているか、SmtpClient.Credentialsプロパティを使用して、認証を完全にサポートしています。

于 2008-11-18T10:30:34.370 に答える