メールを送るプログラムを書くのは初めてです。SMTPクライアントコンストラクターに何を入れるべきかわかりません:
SmtpClient client = new SmtpClient(????);
誰か助けてもらえますか?
メールを送るプログラムを書くのは初めてです。SMTPクライアントコンストラクターに何を入れるべきかわかりません:
SmtpClient client = new SmtpClient(????);
誰か助けてもらえますか?
常にドキュメントを参照してください。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";
これはあなたhost
のオプションですport
。
例えば:
SmtpClient client = new SmtpClient("mail.domain.com", 123);
詳細については、このクラスのMSDNドキュメントをお読みください。
http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx
他の人が提案したように、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>
これは少しトピックから外れていますが、SMTP を介した最新の電子メール配信に関するベスト プラクティス アプローチをサポートしています...
TLS over SSL をサポートするサービスは、より安全な送信を提供するため、常に使用することをお勧めします。
TLS に慣れていない場合は、@gideon が GMail で TLS を使用する例を提供しています。このアプローチをサポートする記事は次のとおりです: C# ASP.NET Send Email via TLS