9

C#コードで、サーバー上のSMTPサーバー構成などを知らなくても電子メールを送信する方法、またはそのようなものを設定する方法はありますか?

私が開発しているコードはライブサーバーにデプロイされますが、構成については何も知らないため、SMTPサーバーがどうなるかを予測することはできません。

4

7 に答える 7

11

これをweb.configに追加します(MSDNリファレンスはこちら):

<system.net>
    <mailSettings>
        <smtp deliveryMethod="Network" from="jdoe@example.com">
            <network host="localhost" port="25" />
        </smtp>
    </mailSettings>
</system.net>

構成設定を指定せずにSmtpClientを使用すると、web.configの値が使用されます。

MailMessage msg = new MailMessage(...);
// build message contents
SmtpClient client = new SmtpClient();
client.Send(msg);
于 2009-01-20T21:28:53.697 に答える
2

少し前まで、これに似た質問に答えました。ここで表示できます。papercutを使用すると、実際の本番SMTPサーバーを知らなくても、使用しなくてもアプリケーションをテストできます

次に、テスト中に、app/web構成でpapercutを実行しているローカルマシンにホストを設定できます。したがって、本番環境に移行すると変更できます。

Papercutは、送信された電子メールと内容を表示します。

于 2009-01-20T21:35:21.297 に答える
1

最良の答えは、ライブになるまで何もわからない場合、すべての設定をweb.configに移動できますか?これにより、最後の最後まで構成が可能になります。以下は、web.configファイルにダンプするコードです。なぜあなたがこの情報にアクセスできないのかについて質問したいのですが

<system.net>
    <mailSettings>
      <smtp from="you@yourdomain.com">
        <network host="SMTP SERVER ADDRESS" port="25"
         userName="USERNAME" password="PASSWORD">
      </smtp>
    </mailSettings>
  </system.net>
于 2009-01-20T21:28:26.477 に答える
0

SMTP構成が正しい場合は、次のようにします。

MailMessage mail = new MailMessage(); 

mail.To = "To"; 
mail.From = "From"; 
mail.Subject = "Subject";     
mail.Body = "Body"; 

SmtpMail.SmtpServer = "localhost"; 
SmtpMail.Send(mail); 
于 2009-01-20T21:28:33.963 に答える
0

別の方法として: サーバー構成に依存せずにプログラムで実行する場合は、次のようにすることができます。

MailMessage mail = new MailMessage() {
    To = "someone@somewhere",
    From = "someone@somewhere",
    Subject = "My Subject",
    Body = "My message"
};

SmtpClient client = new SmtpClient("SMTP Server Address");
    // Naturally you change the "SMTP Server Address" to the
    // actual SMTP server address
client.Send(mail);

ただし、web.config ファイル (ASP.NET Web 構成ツールでも構成できます) に貼り付けることをお勧めします。

于 2009-01-20T21:42:01.957 に答える
0

グーグルからこれを試してください

http://mailsystem.codeplex.com/

于 2012-08-07T09:49:10.247 に答える
0

ええ、SMTP サーバーがまったくなくても、SMTP4Dev などのツールを使用して電子メールを「送信」できます。これをテストに頻繁に使用して、誤って実際のユーザーに実際に電子メールを送信していないことを確認します。

詳細 @ http://netdevtools.com/how-to-test-smtp-emails-without-a-mail-server-no-smtp-configuration-required-in-asp-net-c/

于 2017-02-21T01:26:33.887 に答える