Dart.Mail 名前空間 : Smtp クラス |
<ToolboxItemAttribute(ToolboxItemType=System.Drawing.Design.ToolboxItem, ToolboxItemTypeName="System.Drawing.Design.ToolboxItem, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")> <LicenseProviderAttribute(1.3)> Public Class Smtp Inherits MailBase
[ToolboxItem(ToolboxItemType=System.Drawing.Design.ToolboxItem, ToolboxItemTypeName="System.Drawing.Design.ToolboxItem, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] [LicenseProvider(1.3)] public class Smtp : MailBase
Smtpコンポーネントはインターネットメールを送信します。このコンポーネントは機能が豊富で柔軟性も高く、複数の認証方法、プロキシのサポート、Streamのサポート、TCP接続へのアクセス、デバッグ機能など、.NETプラットフォームには見られない数多くの機能を備えています。
一般的な使用例の概要を以下に示します。C#およびVBのサンプルコードについては、「コード例」のトピックを参照してください。
セッション管理: 認証は自動的に行われます。Closeは接続を終了します。
基本的なメールの送信: Send(String,String,String,String)は、1行のコードでメールを送信する高レベルメソッドです。
高度なメールの送信: Send(MailMessage)は、指定されたMailMessageをエンコードして送信します。このメソッドを使用すると、どれだけ構造が複雑な電子メールメッセージでも作成できます。
エンコードされたメールの送信: Send(Stream,String,String)は、事前にエンコードされた電子メールを送信します。
"オンザフライ"エンコード: すべてのMailMessageパートはオンザフライでエンコードされ、ソケットにストリームされます。これにより、メモリ/ディスクフットプリントが最小限に抑えられます。
進行状況の表示: Progressにより、アップロードの進行状況が更新されます。
SMTPプロトコル通信の表示: Smtp.Connection.Logイベントにより、TCP接続を通じて送信されたすべてのコマンドとデータにアクセスできます。
コントロール接続: Connectionによって公開されたTCP接続により、低レベルのプロパティやメソッドにアクセスできます。たとえば、これを使用してローカルIPアドレスやリモートIPアドレスなどのTCPレベルのプロパティを表示できます。
コマンドの送信: Connection.Write()とConnection.Read()を使用して、任意のコマンド(独自のコマンドを含む)を送受信できます。
private void sendMail(object sender) { // 送信するメッセージを作成します。 MailMessage message = new MailMessage(); message.To = toAddress; message.From = fromAddress; message.Subject = "File Attached"; message.Text = "Please see the attached file."; // 添付ファイルを追加します。 message.Attachments.Add(new Attachment(Application.StartupPath + "\\myImage.jpg")); // セッションパラメーターを設定します。 smtp1.Session.RemoteEndPoint = new Dart.Mail.IPEndPoint(myMailServer, Smtp.GetDefaultPort(smtp1.Session)); smtp1.Session.Username = myUsername; smtp1.Session.Password = myPassword; // メッセージを送信します。 smtp1.Send(message); // 適切にログアウトします。 smtp1.Close(); } private void smtp1_Progress(object sender, SmtpProgressEventArgs e) { // メッセージの送信状況に従ってプログレスバーを更新します。 progressBar1.Value = (e.Final) ? 0 : (int)((e.Position * 100) / e.Length); }
Private Sub sendMail(ByVal sender As Object) ' 送信するメソッドを作成します。 Dim message As New MailMessage() message.To = toAddress message.From = fromAddress message.Subject = "File Attached" message.Text = "Please see the attached file." ' 添付ファイルを追加します。 message.Attachments.Add(New Attachment(Application.StartupPath & "\myImage.jpg")) ' セッションパラメーターを設定します。 smtp1.Session.RemoteEndPoint = New Dart.Mail.IPEndPoint(myMailServer, Smtp.GetDefaultPort(smtp1.Session)) smtp1.Session.Username = myUsername smtp1.Session.Password = myPassword ' メッセージを送信します。 smtp1.Send(message) ' 適切にログアウトします。 smtp1.Close() End Sub Private Sub smtp1_Progress(ByVal sender As Object, ByVal e As SmtpProgressEventArgs) Handles smtp1.Progress ' メッセージの送信状況に従ってプログレスバーを更新します。 progressBar1.Value = If(e.Final, 0, CInt((e.Position * 100) \ e.Length)) End Sub
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
Dart.Mail.ComponentBase
Dart.Mail.MailBase
Dart.Mail.Smtp