3

メールを送るプログラムを書くのは初めてです。SMTPクライアントコンストラクターに何を入れるべきかわかりません:

SmtpClient client = new SmtpClient(????);

誰か助けてもらえますか?

4

5 に答える 5

12

常にドキュメントを参照してください。SmptClientには 3 つのコンストラクターがあります。

SmtpClient()
SmtpClient(String)
SmtpClient(String, Int32)

最後のものを選択した場合、gmail の場合、コードは次のようになります。

SmtpClient client = new SmtpClient("smtp.gmail.com", 587);

最初のコンストラクターを使用して、代わりにプロパティを設定することもできます。

SmtpClient smtp = new SmtpClient();
smtp.Port = 587; 
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("<email_from>",  "password");
smtp.Host = "smtp.gmail.com";   
于 2012-08-07T11:03:16.500 に答える
4

これはあなたhostのオプションですport

例えば:

SmtpClient client = new SmtpClient("mail.domain.com", 123);

詳細については、このクラスのMSDNドキュメントをお読みください。

http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx

于 2012-08-07T11:00:28.110 に答える
4

他の人が提案したように、SMTP ホストとポートをコードで指定できます。

ただし、常に同じホストとポートを使用している場合は、デフォルトのコンストラクターを使用して、アプリケーション構成ファイルSmtpClient要素でホストとポートを指定する方がおそらく簡単で柔軟です。<smtp>

using(var smtpClient = new SmtpClient())
{
    ...
}


<system.net>
    <mailSettings>
        <smtp deliveryMethod="network" from="ben@contoso.com">
            <network 
                 host="localhost"
                 port="25"
                 defaultCredentials="true"
            />
        </smtp>
    </mailSettings>
<system.net>

これの利点の 1 つは、コードを変更しなくてもシステムのメール受信者に不要なメールが送信されるのを回避する、以下のような別の構成を開発/テスト環境で使用できることです。

<smtp deliveryMethod="SpecifiedPickupDirectory" from="ben@contoso.com">
  <network host="localhost"/>
  <specifiedPickupDirectory pickupDirectoryLocation="C:\temp\mail\"/>
</smtp>
于 2012-08-07T12:03:55.537 に答える
0
public SmtpClient(
    string host,
    int port
)

基本的に、ホスト名ポート番号を渡す必要があります

SmtpClient コンストラクターの詳細をお読みください

于 2012-08-07T11:04:13.443 に答える
0

これは少しトピックから外れていますが、SMTP を介した最新の電子メール配信に関するベスト プラクティス アプローチをサポートしています...

TLS over SSL をサポートするサービスは、より安全な送信を提供するため、常に使用することをお勧めします。

TLS に慣れていない場合は、@gideon が GMail で TLS を使用する例を提供しています。このアプローチをサポートする記事は次のとおりです: C# ASP.NET Send Email via TLS

于 2015-08-17T16:55:16.607 に答える