vs.net发送邮件(2.0)
2007-12-05 10:58
211 查看
元アドレス:http://www.atmarkit.co.jp/fdotnet/dotnettips/457sendmail2/sendmail2.html
「TIPS:電子メールを送信するには?」では、SmtpMailクラス(System.Web.Mail名前空間)を使ってメールを送信する方法を紹介している。しかし、このSmtpMailクラスは.NET Framework 2.0ではObsoleteされてしまっており、以前に作成されたコードを動作させるための互換性目的で残されているだけだ。
.NET Framework 2.0ではこの代わりに、System.Net.Mail名前空間が追加されており、これに所属するクラス群(具体的には、メールを送信する機能を提供するSmtpClientクラスなど)を利用することが推奨されている。
そこで本稿では、SmtpClientクラスを用いて電子メールを送信する最もシンプルな方法を紹介する。
SMTPサーバ名(電子メールの送信を行うSMTPサーバの名前)
Fromアドレス(送信者のメール・アドレス)
Toアドレス(受信者のメール・アドレス)
件名(いわゆる“Subject”)
本文
これらの情報を次のコード例のように指定して、プログラムを実行すれば、メールを送信できる。
上記のコードを簡単に解説すると、SmtpClientクラスのコンストラクタのパラメータに文字列で「SMTPサーバ名」を指定し、残りの情報(Fromアドレス、Toアドレス、件名、本文)をSendメソッドの各パラメータに指定している。たったこれだけの記述でメールを送信することができる。
SMTPサーバのポート番号が通常(つまり「25」)と異なる場合は、次のコードの例のように、SmtpClientクラスのコンストラクタの第2パラメータにその番号を指定すればよい。
なお以上の例では、SmtpClientクラスのコンストラクタにSMTPサーバ名とポート番号を指定する方法を紹介したが、これらは次のプロパティから設定・取得することも可能だ。
SMTPサーバ名:SmtpClientオブジェクトのHostプロパティ
ポート番号:SmtpClientオブジェクトのPortプロパティ
本稿で紹介したSendメソッドは同期処理を行うため、SMTPサーバへの接続が完了するか、(接続に失敗して)タイムアウトするまで処理が戻ってこない。これが問題となる場合には、非同期処理を行うSendAsyncメソッドを使う必要があるが、これについては後日公開する別のTIPSで紹介する。
なお、SMTPサーバへの接続タイムアウト時間は既定で100秒(100000ミリ秒)となっているが、次のプロパティにより変更することもできる(ミリ秒単位で指定)。
接続タイムアウト:SmtpClientオブジェクトのTimeoutプロパティ
ここで紹介したSmtpClientクラスの使い方は最もシンプルなものだが、CC(カーボン・コピー)やBCC(ブラインド・カーボン・コピー)などに追加のメール・アドレスを指定したり、添付ファイルを追加したりして電子メールを送信することも可能だ。また、SMTPサーバへのアクセスでユーザー名とパスワードによる認証を行ったり、SSL(Secure Sockets Layer)接続を行ったりすることもできる。これらについては後日公開予定のTIPSで紹介する。
.NET TIPS.NET Framework 2.0で電子メールを送信するには?[2.0のみ、C#、VB]デジタルアドバンテージ 一色 政彦2006/06/09 | |
.NET Framework 2.0ではこの代わりに、System.Net.Mail名前空間が追加されており、これに所属するクラス群(具体的には、メールを送信する機能を提供するSmtpClientクラスなど)を利用することが推奨されている。
そこで本稿では、SmtpClientクラスを用いて電子メールを送信する最もシンプルな方法を紹介する。
SmtpClientクラスを用いてメールを送信する方法
SmtpClientクラスを用いて電子メールを送信するのに最低限必要となるのは、次の5つの情報である。SMTPサーバ名(電子メールの送信を行うSMTPサーバの名前)
Fromアドレス(送信者のメール・アドレス)
Toアドレス(受信者のメール・アドレス)
件名(いわゆる“Subject”)
本文
これらの情報を次のコード例のように指定して、プログラムを実行すれば、メールを送信できる。
| ||
SmtpClientクラスにより最もシンプルにメールを送信する方法(上:C#、下:VB) | ||
SMTPサーバ名を文字列でSmtpClientクラスのコンストラクタに指定し、Fromアドレス、Toアドレス、件名、本文といった情報を文字列でSmtpClientオブジェクトのSendメソッドのパラメータに指定する。 |
SMTPサーバのポート番号が通常(つまり「25」)と異なる場合は、次のコードの例のように、SmtpClientクラスのコンストラクタの第2パラメータにその番号を指定すればよい。
| ||
25番以外のポート番号の指定方法(上:C#、下:VB) | ||
SmtpClientクラスのコンストラクタの第2パラメータにポート番号を指定できる。 |
SMTPサーバ名:SmtpClientオブジェクトのHostプロパティ
ポート番号:SmtpClientオブジェクトのPortプロパティ
本稿で紹介したSendメソッドは同期処理を行うため、SMTPサーバへの接続が完了するか、(接続に失敗して)タイムアウトするまで処理が戻ってこない。これが問題となる場合には、非同期処理を行うSendAsyncメソッドを使う必要があるが、これについては後日公開する別のTIPSで紹介する。
なお、SMTPサーバへの接続タイムアウト時間は既定で100秒(100000ミリ秒)となっているが、次のプロパティにより変更することもできる(ミリ秒単位で指定)。
接続タイムアウト:SmtpClientオブジェクトのTimeoutプロパティ
ここで紹介したSmtpClientクラスの使い方は最もシンプルなものだが、CC(カーボン・コピー)やBCC(ブラインド・カーボン・コピー)などに追加のメール・アドレスを指定したり、添付ファイルを追加したりして電子メールを送信することも可能だ。また、SMTPサーバへのアクセスでユーザー名とパスワードによる認証を行ったり、SSL(Secure Sockets Layer)接続を行ったりすることもできる。これらについては後日公開予定のTIPSで紹介する。
相关文章推荐
- .net Framework 2.0 发送邮件
- 基于.NET2.0的System.Net.Mail发送邮件Demo
- ASP.Net 2.0 发送邮件的代码
- ASP.net 2.0发送邮件实例,本人已经测试通过,贴出代码
- asp.net 2.0 发送邮件取回密码
- 在asp.net 2.0中发送邮件
- asp.net 2.0 SMTP 发送邮件
- 使用支持Pop3的邮箱给好友群发邮件. C# .Net 2.0 邮件发送 + XML 读取操作代码.
- VS.NET发送会议邮件程序原码
- asp.net 2.0发送和接收邮件总结
- asp.net 2.0 如何发送邮件
- 在asp.net 2.0中发送邮件
- ASP.Net 2.0 发送邮件的代码
- NET 2.0 发送EMail邮件
- Asp.net 2.0 发送邮件
- .Net 2.0 中的发送邮件实现小解
- 在asp.net 2.0中发送邮件
- ASP.Net 2.0 发送邮件的代码
- Microsoft .NET Framework 2.0实现发送邮件(Email)总结
- Microsoft .NET Framework 2.0实现发送邮件(Email)总结