1. ホーム
  2. c#

[解決済み] .NETでSmtpClientオブジェクトにユーザー名とパスワードを設定する方法は?

2022-04-21 01:32:50

質問

web.configの情報を使用するもの、ホストを指定するもの、ホストとポートを指定するものなど、さまざまなバージョンのコンストラクタを見かけます。しかし、ユーザー名とパスワードをweb.configと異なるものに設定するにはどうすればよいのでしょうか?私たちの内部smtpがいくつかの高いセキュリティクライアントによってブロックされ、私たちは彼らのsmtpサーバを使用したいという問題があります、web.configの代わりにコードからこれを行う方法はありますか?

この場合、例えばデータベースから何も利用できない場合、web.configの認証情報をどのように利用すればいいのでしょうか?

public static void CreateTestMessage1(string server, int port)
{
    string to = "[email protected]";
    string from = "[email protected]";
    string subject = "Using the new SMTP client.";
    string body = @"Using this new feature, you can send an e-mail message from an application very easily.";
    MailMessage message = new MailMessage(from, to, subject, body);
    SmtpClient client = new SmtpClient(server, port);
    // Credentials are necessary if the server requires the client 
    // to authenticate before it will send e-mail on the client's behalf.
    client.Credentials = CredentialCache.DefaultNetworkCredentials;

    try {
        client.Send(message);
    }
    catch (Exception ex) {
        Console.WriteLine("Exception caught in CreateTestMessage1(): {0}", 
                    ex.ToString());
    }              
}

解決方法は?

SmtpClientは、コードで使用することができます。

SmtpClient mailer = new SmtpClient();
mailer.Host = "mail.youroutgoingsmtpserver.com";
mailer.Credentials = new System.Net.NetworkCredential("yourusername", "yourpassword");