NSDSmtp メンバ
Smtpでメール送信をします。
●コンストラクタ
名前 説明 NSDSmtp NSDSmtpを初期化します。
●プロパティの一覧
名前 説明 DisplayNameBase64 表示名をBase64で送信するかを指定します。 CallCount_SmtpClient_SendCompleted 非同期送信時の送信終了イベントの呼び出し回数を確認するカウンタで使用します。
●メソッドの一覧
名前 引数 戻り値 説明 Dispose なし なし リソースの解放を行います。
※終了時に必ず呼び出します。(内部でCls_Dispose()を呼び出しています。終了処理でCls_Dispose()を呼び出している場合は、呼び出す必要はありません。)
Cls_Dispose なし なし リソースの解放を行います。
※終了時に必ず呼び出します。SetMailerName ( String ) Boolean型 メーラー名を設定します。 GetMailerName なし String型 メーラー名を取得します。 SetTextEncoding ( System.Text.Encoding ) Boolean型 表示名と添付ファイル名のエンコード方式をSystem.Text.Encodingで設定します。 ( MAIL_ENCODING ) Boolean型 表示名と添付ファイル名のエンコード方式をコードページで設定します。 GetTextEncoding なし System.Text.Encoding型 表示名と添付ファイル名のエンコード方式を取得します。 SetFromAddress ( String , String ) Boolean型 メールの差出人を設定します。 GetFromAddress ( String , String ) Boolean型 メールの差出人を取得します。 SetSenderAddress ( String , String ) Boolean型 メッセージの差出人を設定します。 GetSenderAddress ( String , String ) Boolean型 メッセージの差出人を取得します。 SetAddress ( String , MAIL_SMTP_RECIPIENTTYPE , [String] ) Boolean型 1アドレスを指定しTo、Cc、Bccのアドレスを設定します。 ( String() , MAIL_SMTP_RECIPIENTTYPE ) Boolean型 複数アドレスを指定しTo、Cc、Bccのアドレスを設定します。 ( String() , String() , MAIL_SMTP_RECIPIENTTYPE ) Boolean型 複数アドレス、表示名を指定しTo、Cc、Bccのアドレスを設定します。 GetDivisionAddress ( String , String() , String() ) Boolean型 アドレスを表示名、アドレスのリストに変換します。 SetServerInfo ( MAIL_SMTP_Server_INFO ) Boolean型 サーバー情報を設定します。 GetServerInfo ( MAIL_SMTP_Server_INFO ) Boolean型 サーバー情報を取得します。 SetAccountInfo ( String , String ) Boolean型 アカウント情報を設定します。 GetAccountInfo ( String , String ) Boolean型 アカウント情報を取得します。 SetAttachment ( String ) Boolean型 1つの添付ファイルを設定します。 ( String() ) Boolean型 複数の添付ファイルを設定します。 SetSendInfo ( MAIL_SEND_INFO ) Boolean型 メール送信情報用のクラスを設定します。 SendMail ( [Boolean] ) Boolean型 メールを送信します。 GetSendErrNo なし MAIL_SEND_ERR型 送信処理後のエラー番号を戻します。 GetSendErrMsg なし String型 送信処理後のエラーメッセージを戻します。 GetTcpResultInfo なし NSDSmtp_TcpResultInfo型 送信結果を返します。 IsSendAsync なし Boolean型 非同期送信命令を実行しているかを戻します。
※SendMail(False)の戻り値がFalseの場合に確認用で使用します。IsSend なし Boolean型 非同期送信中かを返します。 SendeStop なし Boolean型 非同期送信を中止します。
●イベントの一覧
名前 引数 戻り値 説明 SmtpClient_SendCompleted ( System.ComponentModel.AsyncCompletedEventArgs ) なし 非同期送信の送信終了イベント。 TcpClient_SendCompleted ( NSDSmtp_TcpResultInfo ) なし 非同期送信の送信終了イベント。
●データ用クラスの一覧
名前:MAIL_SEND_INFO
構文:
Public Class MAIL_SEND_INFO
Public Subject As String
Public SubjectEncode As System.Text.Encoding
Public SubjectBase64 As Boolean
Public Body As String
Public BodyEncode As System.Text.Encoding
Public BodyTransferEncoding As CONTENT_TRANSFER_ENCODING
Public Priority As MAIL_PRIORITY
Public ReadingCheck As Boolean
Public DeliveryNotification As Boolean
Public SendStyle As MAIL_SEND_STYLE
Public TcpDeliveryNotification_RET_Style As TCP_MAIL_OPTION_RET
Public TcpDeliveryNotification_NOTIFY_Style As TCP_RCPT_OPTION_NOTIFY
Public TcpDeliveryNotification_ORCPT As Boolean
End Class内容:メール送信情報用のクラス。
名前 型 説明 Subject String 件名。(既定値:Nothing) SubjectEncode System.Text.Encoding 件名のエンコード。
(既定値:MAIL_ENCODING.iso_2022_jp_1byteKatakana)SubjectBase64 Boolean 件名をBase64で送信するかの設定。
(既定値:True Base64で送信。)Body String 本文。(既定値:Nothing) BodyEncode System.Text.Encoding 本文のエンコード。
(既定値:MAIL_ENCODING.iso_2022_jp_1byteKatakana)BodyTransferEncoding CONTENT_TRANSFER_ENCODING 本文のエンコード方式。
(既定値:CONTENT_TRANSFER_ENCODING.Base64)Priority MAIL_PRIORITY 重要度。(既定値:MAIL_PRIORITY.Normal) ReadingCheck Boolean 開封確認。(既定値:False) DeliveryNotification Boolean 配信通知。(既定値:False) SendStyle MAIL_SEND_STYLE SmtpClientまたはTcpClientのどちらで送信するかの送信スタイルを指定します。
(既定値:MAIL_SEND_STYLE.SmtpClient)TcpDeliveryNotification_RET_Style TCP_MAIL_OPTION_RET MAILコマンドのRETオプション。*1
(既定値:TCP_MAIL_OPTION_RET.NotSet)TcpDeliveryNotification_NOTIFY_Style TCP_RCPT_OPTION_NOTIFY RCPTコマンドのNOTIFYオプション。*1
(既定値:TCP_RCPT_OPTION_NOTIFY.SUCCESS Or TCP_RCPT_OPTION_NOTIFY.FAILURE)TcpDeliveryNotification_ORCPT Boolean RCPTコマンドのORCPTオプション設定有無。*1
(既定値:False)
名前:MAIL_SMTP_Server_INFO
構文:
Public Class MAIL_SMTP_Server_INFO
Public Host As String
Public Port As Int32
Public TimeOut As Int32
Public AttestationType As MAIL_ATTESTATION_TYPE
Public DeliveryMethod As SmtpDeliveryMethod
Public SSL As Boolean
Public STARTTLS As Boolean
Public ReceiveTimeout As Int32
Public ReceiveBufferSize As Int32
Public SendTimeout As Int32
Public SendBufferSize As Int32
End Class内容:サーバー情報。
名前 型 説明 Host String ホスト名またはIPアドレス。(既定値:Nothing) Port Int32 SMTPポート番号。(既定値:25) TimeOut Int32 タイムアウトする時間(ミリ秒)。(既定値:100000) AttestationType MAIL_ATTESTATION_TYPE 認証タイプ。(既定値:MAIL_ATTESTATION_TYPE.Attestation_Account) DeliveryMethod SmtpDeliveryMethod 送信方法。*2
(既定値:SmtpDeliveryMethod.Network)SSL Boolean SSL(Secure Socket Layer)の使用有無。
(既定値:False)STARTTLS Boolean STARTTLSの使用有無。*1
(既定値:False)ReceiveTimeout Int32 受信時のタイムアウト(ミリ秒)。*1
(既定値:10000)ReceiveBufferSize Int32 受信バッファサイズ。*1
(既定値:8192)SendTimeout Int32 送信時のタイムアウト(ミリ秒)。*1
(既定値:10000)SendBufferSize Int32 送信バッファサイズ。*1
(既定値:8192)
名前:NSDSmtp_TcpResultInfo
構文:
Public Class NSDSmtp_TcpResultInfo
Friend Success As Boolean
Friend LastReceiveNo As Integer
Friend SendErr As MAIL_SEND_ERR
Friend SendErrMsg As String
Friend LastErrorMsg As String
Friend LastReceiveMsg As String
End Class内容:Tcpclientでの送信結果情報。
名前 型 説明 Success Boolean 成功有無。(既定値:False) LastReceiveNo Integer 最後に受信した応答コード。(既定値:0) SendErr MAIL_SEND_ERR 送信エラー番号。(既定値:MAIL_SEND_ERR.NoErr) SendErrMsg String 送信エラーメッセージ。(既定値:Nothing) LastErrorMsg String 最後のエラーメッセージ。(既定値:Nothing) LastReceiveMsg String 最後の応答メッセージ。(既定値:Nothing)
●定数の一覧
名前:MAIL_ATTESTATION_TYPE (認証タイプ) 名前 内容 Attestation_Account アカウント認証。*2 Attestation_windwos Windows認証。*2 UnAttestation 認証なし。*2 Tcp_AUTO_CHECK TCPの場合に自動認証。*1
優先順位 NTLM認証 -> CRAM-MD5認証 -> PLAIN認証 -> LOGIN認証Tcp_LOGIN ログイン認証。*1 Tcp_PLAIN PLAIN認証。*1 Tcp_NTLM NTLM認証。*1 Tcp_CRAMMD5 CRAM-MD5認証。*1
名前:MAIL_ENCODING (エンコード種類 *がついているコードページは、基になるプラットフォームに関係なく.NET Frameworkでネイティブにサポートされています。) 名前 内容 IBM037 IBM EBCDIC (US - カナダ) IBM437 OEM アメリカ合衆国 IBM500 IBM EBCDIC (インターナショナル) ASMO_708 アラビア語 (ASMO 708) DOS_720 アラビア語 (DOS) ibm737 ギリシャ語 (DOS) ibm775 バルト言語 (DOS) ibm850 西ヨーロッパ言語 (DOS) ibm852 中央ヨーロッパ言語 (DOS) IBM855 OEM キリル ibm857 トルコ語 (DOS) IBM00858 OEM マルチリンガル ラテン I IBM860 ポルトガル語 (DOS) ibm861 アイスランド語 (DOS) DOS_862 ヘブライ語 (DOS) IBM863 フランス語 (カナダ) (DOS) IBM864 アラビア語 (864) IBM865 北欧 (DOS) cp866 キリル言語 (DOS) ibm869 ギリシャ語, Modern (DOS) IBM870 IBM EBCDIC (多国語ラテン 2) windows_874 タイ語 (Windows) cp875 IBM EBCDIC (ギリシャ語 Modern) shift_jis 日本語 (シフト JIS) gb2312 簡体字中国語 (GB2312) * ks_c_5601_1987 韓国語 big5 繁体字中国語 (Big5) IBM1026 IBM EBCDIC (トルコ語ラテン 5) IBM01047 IBM ラテン-1 IBM01140 IBM EBCDIC (US - カナダ - ヨーロッパ) IBM01141 IBM EBCDIC (ドイツ - ヨーロッパ) IBM01142 IBM EBCDIC (デンマーク - ノルウェー - ヨーロッパ) IBM01143 IBM EBCDIC (フィンランド - スウェーデン - ヨーロッパ) IBM01144 IBM EBCDIC (イタリア - ヨーロッパ) IBM01145 IBM EBCDIC (スペイン - ヨーロッパ) IBM01146 IBM EBCDIC (UK - ヨーロッパ) IBM01147 IBM EBCDIC (フランス - ヨーロッパ) IBM01148 IBM EBCDIC (インターナショナル - ヨーロッパ) IBM01149 IBM EBCDIC (アイスランド語 - ヨーロッパ) utf_16 Unicode * unicodeFFFE Unicode (ビッグ エンディアン) * windows_1250 中央ヨーロッパ言語 (Windows) windows_1251 キリル言語 (Windows Windows_1252 西ヨーロッパ言語 (Windows) * windows_1253 ギリシャ語 (Windows) windows_1254 トルコ語 (Windows) windows_1255 ヘブライ語 (Windows) windows_1256 アラビア語 (Windows) windows_1257 バルト言語 (Windows) windows_1258 ベトナム語 (Windows) Johab 韓国語 (Johab) macintosh 西ヨーロッパ言語 (Mac) x_mac_japanese 日本語 (Mac) x_mac_chinesetrad 繁体字中国語 (Mac) x_mac_korean 韓国語 (Mac) * x_mac_arabic アラビア語 (Mac) x_mac_hebrew ヘブライ語 (Mac) x_mac_greek ギリシャ語 (Mac) x_mac_cyrillic キリル言語 (Mac) x_mac_chinesesimp 簡体字中国語 (Mac) * x_mac_romanian ルーマニア語 (Mac) x_mac_ukrainian ウクライナ語 (Mac) x_mac_thai タイ語 (Mac) x_mac_ce 中央ヨーロッパ言語 (Mac) x_mac_icelandic アイスランド語 (Mac) x_mac_turkish トルコ語 (Mac) x_mac_croatian クロアチア語 (Mac) utf_32 Unicode (UTF-32) * utf_32BE Unicode (UTF-32 ビッグ エンディアン) * x_Chinese_CNS 繁体字中国語 (CNS) x_cp20001 TCA 台湾 x_Chinese_Eten 繁体字中国語 (Eten) x_cp20003 IBM5550 台湾 x_cp20004 TeleText 台湾 x_cp20005 Wang 台湾 x_IA5 西ヨーロッパ言語 (IA5) x_IA5_German ドイツ語 (IA5) x_IA5_Swedish スウェーデン語 (IA5) x_IA5_Norwegian ノルウェー語 (IA5) us_ascii US-ASCII * x_cp20261 T.61 x_cp20269 ISO -6937 IBM273 IBM EBCDIC (ドイツ) IBM277 IBM EBCDIC (デンマーク - ノルウェー) IBM278 IBM EBCDIC (フィンランド - スウェーデン) IBM280 IBM EBCDIC (イタリア) IBM284 IBM EBCDIC (スペイン) IBM285 IBM EBCDIC (UK) IBM290 IBM EBCDIC (日本語カタカナ) IBM297 IBM EBCDIC (フランス) IBM420 IBM EBCDIC (アラビア語) IBM423 IBM EBCDIC (ギリシャ語) IBM424 IBM EBCDIC (ヘブライ語) x_EBCDIC_KoreanExtended IBM EBCDIC (韓国語 Extended) IBM_Thai IBM EBCDIC (タイ語) koi8_r キリル言語 (KOI8-R) IBM871 IBM EBCDIC (アイスランド語) IBM880 IBM EBCDIC (キリル言語 - ロシア語) IBM905 IBM EBCDIC (トルコ語) IBM00924 IBM ラテン-1 EUC__JP 日本語 (JIS 0208-1990 および 0212-1990) x_cp20936 簡体字中国語 (GB2312-80) * x_cp20949 韓国語 Wansung * cp1025 IBM EBCDIC (キリル言語 セルビア - ブルガリア) koi8_u キリル言語 (KOI8-U) iso_8859_1 西ヨーロッパ言語 (ISO) * iso_8859_2 中央ヨーロッパ言語 (ISO) iso_8859_3 ラテン 3 (ISO) iso_8859_4 バルト言語 (ISO) iso_8859_5 キリル言語 (ISO) iso_8859_6 アラビア語 (ISO) iso_8859_7 ギリシャ語 (ISO) iso_8859_8 ヘブライ語 (ISO-Visual) * iso_8859_9 トルコ語 (ISO) iso_8859_13 エストニア語 (ISO) iso_8859_15 ラテン 9 (ISO) x_Europa ヨーロッパ iso_8859_8_i ヘブライ語 (ISO-Logical) * iso_2022_jp 日本語 (JIS) * csISO2022JP 日本語 (JIS 1 バイト カタカナ可) * iso_2022_jp_1byteKatakana 日本語 (JIS 1 バイト カタカナ可 - SO/SI) * iso_2022_kr 韓国語 (ISO) * x_cp50227 簡体字中国語 (ISO-2022) * euc_jp 日本語 (EUC) * EUC_CN 簡体字中国語 (EUC) * euc_kr 韓国語 (EUC) * hz_gb_2312 簡体字中国語 (HZ) * GB18030 簡体字中国語 (GB18030) * x_iscii_de ISCII デバナガリ文字 * x_iscii_be ISCII ベンガル語 * x_iscii_ta ISCII タミール語 * x_iscii_te ISCII テルグ語 * x_iscii_as ISCII アッサム語 * x_iscii_or ISCII オリヤー語 * x_iscii_ka ISCII カナラ語 * x_iscii_ma ISCII マラヤラム語 * x_iscii_gu ISCII グジャラート語 * x_iscii_pa ISCII パンジャブ語 * utf_7 Unicode (UTF-7) * utf_8 Unicode (UTF-8) *
名前:MAIL_PRIORITY (重要度) 名前 内容 Normal 普通。 Low 低い。 High 高い。
名前:MAIL_SMTP_RECIPIENTTYPE (受け取り人のタイプ) 名前 内容 SmtpTo To。 SmtpCc Cc。 SmtpBcc Bcc。
名前:MAIL_SEND_ERR (送信時のエラー) 名前 内容 NoErr エラーなし。 NotToOrCcOrBccAddress To、CC、Bccが一つも設定されていない。 NoFormAddress Formアドレスが設定されていない。 NoHost Hostが設定されていない。 PortZero ポートが0です。 ErrSmtpException SMTPサーバーへの接続に失敗しました。
または
認証に失敗しました。
または
操作がタイムアウトしました。NoFormToMessage FromがNull。
または
ToがNull。
または
messageがnull。NoToCcBcc To、CC、Bccが一つも設定されていない。 ErrInvalidOperationException 非同期送信中。
または
Host設定されていない。
または
ポート番号が0。NotServerInfo サーバー情報が設定されていません。 NotAccount アカウントが設定されていません。 StopSend 送信を中止しました。 SendTimeOut タイムアウトしました。 NoSenderAddress Senderアドレスが設定されていない。 UnKnownErr 不明なエラー。 NotConnect サーバーに接続できません。 NotGetStream ストリームが取得できません。 SetErrTcpClient TcpClientが設定できません。 TcpErr_NoHeader ヘッダーが取得できません。 TcpErr_NotStream ストリームが取得できません。 TcpErr_NotSSLStream ストリームが取得できません(SSL用)。 TcpErr_NotSSLAttestation サーバーとの認証ができません(SSL用)。 TcpErr_EHLO EHLOコマンドエラー。 TcpErr_STARTTLS STARTTLSコマンドエラー。 TcpErr_NotSender 送信者の設定ができません。 TcpErr_NotTo 宛先(To)の設定ができません。 TcpErr_NotCc 宛先(Cc)の設定ができません。 TcpErr_NotBcc 宛先(Bcc)の設定ができません。 TcpErr_NotDATA データの送信開始エラー。 TcpErr_NotDATASender データの送信エラー。 TcpErr_QUIT QUITコマンドエラー。 TcpErr_NotSupportAttestation 対応している認証が存在しません。 TcpErr_Attestation 認証できません。 TcpErr_NotNTLM NTLMがサポートされていません。 TcpErr_NoNTLM_Type1 NTLM認証のType1が確認できません。 TcpErr_NoNTLM_Type2 NTLM認証のType2が確認できません。 TcpErr_NoNTLM_Type3 NTLM認証のType3が確認できません。 TcpErr_STOP 送信を中止しました。
名前:CONTENT_TRANSFER_ENCODING (本文のエンコード方式) 名前 内容 DefaultEncodeing デフォルトのEncodeing(QuotedPrintable)。 Base64 Base64。 SevenBit 7bit。*2
名前:MAIL_SEND_STYLE (メッセージの送信スタイル) 名前 内容 SmtpClient SmtpClientで送信。 TcpClient TcpClientで送信。
名前:TCP_MAIL_OPTION_RET (MAILコマンドのRETオプション設定用) 名前 内容 NotSet 設定なし。 FULL 元メール全体を返す。 HDRS 元メールのヘッダーのみを返す。
名前:TCP_RCPT_OPTION_NOTIFY (RCPTコマンドのNOTIFYオプション設定用) 名前 内容 NotSet 設定なし。 NEVER DSNを返さない。 SUCCESS 配信成功時にDSNを返す。 FAILURE 配信失敗時にDSNを返す。 DELAY 配信遅延時にDSNを返す。
●NSDSmtpコンストラクタの説明
構文:Public Sub New()
使用法:Public ClsPub_Smtp As New NSDSmtp
引数:なし。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp Catch ex As Exception Finally End Try End Sub End Class
●NSDSmtpプロパティの説明
名前:DisplayNameBase64
構文:Public Property DisplayNameBase64() As Boolean
機能:表示名をBase64で送信するかを指定します。
引数:なし。
値:Boolean
値の説明:
True :表示名をBase64で送信します。
False:表示名はデフォルトの設定(quoted-printable)で送信されます。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 表示名をBase64で送信. ClsPub_Smtp.DisplayNameBase64 = True ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
名前:CallCount_SmtpClient_SendCompleted
構文:Public Property CallCount_SmtpClient_SendCompleted() As Integer
機能:非同期送信時の送信終了イベントの呼び出し回数を確認するカウンタで使用します。*2
引数:なし。
値:Integer
値の説明:
非同期送信の送信終了時に呼び出される、SmtpClient_SendCompletedイベント内で値を取得、設定します。
SmtpClient_SendCompletedイベントが1回目に呼び出された場合は、値は0です。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. Public Bln_Add_SmtpClient_SendCompleted As Boolean = False ' イベントの設定フラグ. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() e.Cancel = True Else ' リソースを解放します. ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc
Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End SelectDim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo
' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. ' 送信スタイル. .SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClientEnd With ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 非同期送信(イベントをセットします). AddHandler ClsPub_Smtp.SmtpClient_SendCompleted, AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = True ' 送信します. Dim Bln_Ret As Boolean = ClsPub_Smtp.SendMail(False) If Not Bln_Ret Then If Not ClsPub_Smtp.IsSendAsync Then ' 非同期送信を実行していません. SnedErrMsg If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If End If End If Catch ex As Exception Finally End Try End Sub ' 送信の中止. Private Sub Button2_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button2.Click Try If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() End If Catch ex As Exception Finally End Try End Sub ' 送信に失敗したメッセージを表示. Private Sub SnedErrMsg() Try Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) Catch ex As Exception Finally End Try End Sub ' 非同期送信の終了. Private Sub SmtpClient_SendCompleted(ByVal e As System.ComponentModel.AsyncCompletedEventArgs) ' 1回目の呼び出しを確認. If ClsPub_Smtp.CallCount_SmtpClient_SendCompleted = 0 Then ' 呼び出し件数をカウントアップします. ClsPub_Smtp.CallCount_SmtpClient_SendCompleted += 1 Try If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If Catch ex As Exception Finally If e.Cancelled Then SnedErrMsg Else If (e.Error Is Nothing) Then MsgBox("送信しました。") Else MsgBox("送信エラーが発生しました。") End If End If End Try End If End Sub End Class
●NSDSmtpメソッドの説明
名前:Dispose
構文:Public Sub Dispose()
機能:リソースの解放を行います。
※終了時に必ず呼び出します。
(内部でCls_Dispose()を呼び出しています。終了処理でCls_Dispose()を呼び出している場合は、呼び出す必要はありません。)
引数:なし。
戻り値:なし。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp Catch ex As Exception Finally End Try End Sub End Class
名前:Cls_Dispose
構文:Public Sub Cls_Dispose()
機能:リソースの解放を行います。
※終了時に必ず呼び出します。
引数:なし。
戻り値:なし。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Cls_Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp Catch ex As Exception Finally End Try End Sub End Class
名前:SetMailerName
構文:Public Function SetMailerName( MailerName ) As Boolean
機能:メーラー名を設定します。
引数:
名前 型 引数渡しの方法 説明 MailerName String 値渡し(ByVal) メーラー名を渡します。
※名前は半角のアルファベット、数字、記号を渡します。戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセットします. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メーラー名を表示します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try MsgBox("メーラー:" & ClsPub_Smtp.GetMailerName()) Catch ex As Exception Finally End Try End Sub End Class
名前:GetMailerName
構文:Public Function GetMailerName() As String
機能:メーラー名を取得します。
引数:なし。
戻り値:String
戻り値の説明:
メーラー名を返します。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセットします. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メーラー名を表示します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try MsgBox("メーラー:" & ClsPub_Smtp.GetMailerName()) Catch ex As Exception Finally End Try End Sub End Class
名前:SetTextEncoding
機能:表示名と添付ファイル名のエンコード方式を設定します。
@表示名と添付ファイル名のエンコード方式をSystem.Text.Encodingで設定します。
構文:Public Function SetTextEncoding( TextEncoding ) As Boolean
引数:
名前 型 引数渡しの方法 説明 TextEncoding System.Text.Encoding 値渡し(ByVal) エンコード方式をSystem.Text.Encodingで渡します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 表示名と添付ファイル名のエンコード方式を設定します. Dim TEncode As System.Text.Encoding = _ System.Text.Encoding.GetEncoding("iso-2022-jp") ClsPub_Smtp.SetTextEncoding(TEncode) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
A表示名と添付ファイル名のエンコード方式をコードページで設定します。
構文:Public Function SetTextEncoding( Encoding ) As Boolean
引数:
名前 型 引数渡しの方法 説明 Encoding MAIL_ENCODING 値渡し(ByVal) エンコード方式をMAIL_ENCODING(コードページ)で渡します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 表示名と添付ファイル名のエンコード方式を設定します. ClsPub_Smtp.SetTextEncoding(NSDSmtp.MAIL_ENCODING.iso_2022_jp) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
名前:GetTextEncoding
構文:Public Function GetTextEncoding() As System.Text.Encoding
機能:表示名と添付ファイル名のエンコード方式を取得します。
引数:なし。
戻り値:System.Text.Encoding
戻り値の説明:
エンコード方式を返します。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' エンコード方式を表示します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 表示名と添付ファイル名のエンコード方式を取得します. Dim TEncode As System.Text.Encoding = ClsPub_Smtp.GetTextEncoding() MsgBox("エンコード方式:" & TEncode.BodyName) Catch ex As Exception Finally End Try End Sub End Class
名前:SetFromAddress
構文:Public Function SetFromAddress( MailAddress , DispName ) As Boolean
機能:メールの差出人を設定します。
引数:
名前 型 引数渡しの方法 説明 MailAddress String 値渡し(ByVal) 差出人のE-Mailアドレスを渡します。 DispName String 値渡し(ByVal) 差出人の表示名を渡します。
※表示名が設定されていない場合は、E-Mailアドレスを表示名とします。戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 差出人E-Mailアドレス. Dim Str_FromAddress As String = "" ' <- 差出人E-Mailアドレスをセット. ' 表示名. Dim Str_FromName As String = "" ' <- 表示名をセット. ' 差出人のユーザー情報を設定します. ClsPub_Smtp.SetFromAddress(Str_FromAddress, Str_FromName) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
名前:GetFromAddress
構文:Public Function GetFromAddress( MailAddress , DispName ) As Boolean
機能:メールの差出人を取得します。
引数:
名前 型 引数渡しの方法 説明 MailAddress String 参照渡し(ByRef) 差出人のE-Mailアドレスを返します。 DispName String 参照渡し(ByRef) 差出人の表示名を返します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' 差出人を取得します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 差出人E-Mailアドレス. Dim Str_FromAddress As String = "" ' 表示名. Dim Str_FromName As String = "" ' 差出人のユーザー情報を取得します. ClsPub_Smtp.GetFromAddress(Str_FromAddress, Str_FromName) ' 差出人を表示します. MsgBox("差出人E-Mail:" & Str_FromAddress & _ ControlChars.CrLf & "表示名:" & Str_FromName) Catch ex As Exception Finally End Try End Sub End Class
名前:SetSenderAddress
構文:Public Function SetSenderAddress( MailAddress , DispName ) As Boolean
機能:メッセージの差出人を設定します。
引数:
名前 型 引数渡しの方法 説明 MailAddress String 値渡し(ByVal) 差出人のE-Mailアドレスを渡します。 DispName String 値渡し(ByVal) 差出人の表示名を渡します。
※表示名が設定されていない場合は、E-Mailアドレスを表示名とします。戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 差出人E-Mailアドレス. Dim Str_FromAddress As String = "" ' <- 差出人E-Mailアドレスをセット. ' 表示名. Dim Str_FromName As String = "" ' <- 表示名をセット. ' 差出人のユーザー情報を設定します. ClsPub_Smtp.SetFromAddress(Str_FromAddress, Str_FromName) ' メッセージの差出人E-Mailアドレス. Dim Str_SenderAddress As String = "" ' <- メッセージの差出人E-Mailアドレスをセット. ' メッセージの差出人表示名. Dim Str_SenderName As String = "" ' <- メッセージの差出人表示名をセット. ' メッセージの差出人を設定します. ClsPub_Smtp.SetSenderAddress(Str_SenderAddress, Str_SenderName) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
名前:GetSenderAddress
構文:Public Function GetSenderAddress( MailAddress , DispName ) As Boolean
機能:メッセージの差出人を取得します。
引数:
名前 型 引数渡しの方法 説明 MailAddress String 参照渡し(ByRef) 差出人のE-Mailアドレスを返します。 DispName String 参照渡し(ByRef) 差出人の表示名を返します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メッセージ差出人を取得します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' メッセージの差出人E-Mailアドレス. Dim Str_SenderAddress As String = "" ' 表示名. Dim Str_SenderName As String = "" ' メッセージ差出人の情報を取得します. ClsPub_Smtp.GetSenderAddress(Str_SenderAddress, Str_SenderName) ' 差出人を表示します. MsgBox("差出人E-Mail:" & Str_SenderAddress & _ ControlChars.CrLf & "表示名:" & Str_SenderName) Catch ex As Exception Finally End Try End Sub End Class
名前:SetAddress
機能:To、Cc、Bccのアドレスを設定します。
@1アドレスを指定しTo、Cc、Bccのアドレスを設定します。
構文:Public Function SetAddress( MailAddress , Type , [DispName] ) As Boolean
引数:
名前 型 引数渡しの方法 説明 MailAddress String 値渡し(ByVal) E-Mailアドレスを渡します。 Type MAIL_SMTP_RECIPIENTTYPE 値渡し(ByVal) 受け取り人のタイプを渡します。 [DispName] String 値渡し(ByVal) 表示名を渡します。(既定値:Nothing) 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. ClsPub_Smtp.SetAddress("ToAddress", _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo, "To Name") ClsPub_Smtp.SetAddress("CcAddress", _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc, "Cc Name") ClsPub_Smtp.SetAddress("BccAddress", _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc, "Bcc Name") ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
A複数アドレスを指定しTo、Cc、Bccのアドレスを設定します。
構文:Public Function SetAddress( MailAddress() , Type ) As Boolean
引数:
名前 型 引数渡しの方法 説明 MailAddress() String 値渡し(ByVal) E-Mailアドレスのリストを渡します。 Type MAIL_SMTP_RECIPIENTTYPE 値渡し(ByVal) 受け取り人のタイプを渡します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Ccのセット. Dim Str_ToAddress() As String Dim Str_CcAddress() As String ReDim Str_ToAddress(0 To 1) ReDim Str_CcAddress(0) Str_ToAddress(0) = "ToAddress1" Str_ToAddress(1) = "ToAddress2" Str_CcAddress(0) = "CcAddress1" ClsPub_Smtp.SetAddress(Str_ToAddress, _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo) ClsPub_Smtp.SetAddress(Str_CcAddress, _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc) ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
B複数アドレス、表示名を指定しTo、Cc、Bccのアドレスを設定します。
構文:Public Function SetAddress( MailAddress() , DispName() , Type ) As Boolean
引数:
名前 型 引数渡しの方法 説明 MailAddress() String 値渡し(ByVal) E-Mailアドレスのリストを渡します。 DispName() String 値渡し(ByVal) 表示名のリストを渡します。 Type MAIL_SMTP_RECIPIENTTYPE 値渡し(ByVal) 受け取り人のタイプを渡します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Ccのセット. Dim Str_ToAddress() As String Dim Str_ToName() As String Dim Str_CcAddress() As String Dim Str_CcName() As String ReDim Str_ToAddress(0 To 1) ReDim Str_ToName(0 To 1) ReDim Str_CcAddress(0) ReDim Str_CcName(0) Str_ToAddress(0) = "ToAddress1" Str_ToName(0) = "ToName1" Str_ToAddress(1) = "ToAddress2" Str_ToName(1) = "ToName2" Str_CcAddress(0) = "CcAddress1" Str_CcName(0) = "CcName1" ClsPub_Smtp.SetAddress(Str_ToAddress, _ Str_ToName, NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo) ClsPub_Smtp.SetAddress(Str_CcAddress, _ Str_CcName, NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc) ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
名前:GetDivisionAddress
構文:GetDivisionAddress( AddressName , MailAddress() , DispName() ) As Boolean
機能:アドレスを表示名、アドレスのリストに変換します。
引数:
名前 型 引数渡しの方法 説明 AddressName String 値渡し(ByVal) 表示付きのアドレスまたはアドレスを渡します。 ※複数アドレスの場合はセミコロン(;)で区切ります。
表示名を指定する場合は、メールアドレスを<>で囲みます。
例:"TEST<test@xxxx.xx.xx>;test1@xxxx.xx.xx"
MailAddress() String 参照渡し(ByRef) メールアドレスを返します。 DispName() String 参照渡し(ByRef) 表示名を返します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセットします. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' アドレスリストを取得します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先. Dim Str_ToAddress As String Str_ToAddress = "TEST<test@xxxx.xx.xx>;test1@xxxx.xx.xx" Dim Str_Address() AS String = Nothing Dim Str_DispName() AS String = Nothing ClsPub_Smtp.GetDivisionAddress(Str_ToAddress, Str_Address, Str_DispName) Catch ex As Exception Finally End Try End Sub End Class
名前:SetServerInfo
構文:Public Function SetServerInfo( ServerInfo ) As Boolean
機能:サーバー情報を設定します。
引数:
名前 型 引数渡しの方法 説明 ServerInfo MAIL_SMTP_Server_INFO 値渡し(ByVal) MAIL_SMTP_Server_INFOを渡します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセットします. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' サーバー情報を設定します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' サーバー情報. Dim ServerInfo As New NSDSmtp.MAIL_SMTP_Server_INFO With ServerInfo ' 送信サーバー名. .Host = "" ' <- 送信サーバー名をセットします. ' ポート番号. .Port = 587 ' <- ポート番号をセットします. ' タイムアウト. .TimeOut = 100000 End With ClsPub_Smtp.SetServerInfo(ServerInfo) Catch ex As Exception Finally End Try End Sub End Class
名前:GetServerInfo
構文:Public Function GetServerInfo( ServerInfo ) As Boolean
機能:サーバー情報を取得します。
引数:
名前 型 引数渡しの方法 説明 ServerInfo MAIL_SMTP_Server_INFO 参照渡し(ByRef) MAIL_SMTP_Server_INFOを渡し、返します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセットします. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' サーバー情報を取得します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' サーバー情報. Dim ServerInfo As New NSDSmtp.MAIL_SMTP_Server_INFO ClsPub_Smtp.GetServerInfo(ServerInfo) MsgBox("サーバー名:" & ServerInfo.Host) Catch ex As Exception Finally End Try End Sub End Class
名前:SetAccountInfo
構文:Public Function SetAccountInfo( AccountName , Password ) As Boolean
機能:アカウント情報を設定します。
引数:
名前 型 引数渡しの方法 説明 AccountName String 値渡し(ByVal) アカウント名を渡します。 Password String 値渡し(ByVal) パスワードを渡します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' アカウント情報を設定します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' アカウント名. Dim Str_AccountName As String = "" ' <- アカウント名をセット. ' パスワード. Dim Str_Password As String = "" ' <- パスワードをセット. ClsPub_Smtp.SetAccountInfo(Str_AccountName, Str_Password) Catch ex As Exception Finally End Try End Sub End Class
名前:GetAccountInfo
構文:Public Function GetAccountInfo( AccountName , Password ) As Boolean
機能:アカウント情報を取得します。
引数:
名前 型 引数渡しの方法 説明 AccountName String 参照渡し(ByRef) アカウント名を返します。 Password String 参照渡し(ByRef) パスワードを返します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' アカウント情報を設定します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' アカウント名. Dim Str_AccountName As String = "" ' パスワード. Dim Str_Password As String = "" ClsPub_Smtp.GetAccountInfo(Str_AccountName, Str_Password) MsgBox("アカウント名:" & Str_AccountName & _ ControlChars.CrLf & "パスワード:" & Str_Password) Catch ex As Exception Finally End Try End Sub End Class
名前:SetAttachment
機能:添付ファイルを設定します。
構文:Public Function SetAttachment( FileName ) As Boolean
引数:
名前 型 引数渡しの方法 説明 FileName String 値渡し(ByVal) 設定する添付ファイルのフルパス名を渡します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 添付ファイル. ClsPub_Smtp.SetAttachment("C:\MailData\TmpData1.txt") ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
構文:Public Function SetAttachment( FileName() ) As Boolean
引数:
名前 型 引数渡しの方法 説明 FileName() String 値渡し(ByVal) 設定する添付ファイルリストをフルパス名で渡します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 添付ファイル. Dim Str_Attachments() As String = Nothing ReDim Str_Attachments(0 To 1) Str_Attachments(0) = "C:\MailData\TmpData1.txt" Str_Attachments(1) = "C:\MailData\TmpData2.txt" ClsPub_Smtp.SetAttachment(Str_Attachments) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
名前:SetSendInfo
構文:Public Function SetSendInfo( SI ) As Boolean
機能:メール送信情報用のクラスを設定します。
引数:
名前 型 引数渡しの方法 説明 SI MAIL_SEND_INFO 値渡し(ByVal) メール送信情報用のクラスを渡します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. ' 重要度を設定. .Priority = NSDSmtp.MAIL_PRIORITY.Normal ' 開封済みメッセージを受ける. .ReadingCheck = True ' 配信通知を取得する. .DeliveryNotification = True End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
名前:SendMail
構文:Public Function SendMail( [Synchronization] ) As Boolean
機能:メールのメッセージ(MailItem)が未開封かを確認します。
引数:
名前 型 引数渡しの方法 説明 [Synchronization] Boolean 値渡し(ByVal) True :同期送信を行います。(既定値)
False:非同期送信を行います。戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例@:同期送信。
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 同期送信. If ClsPub_Smtp.SendMail(True) Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class使用例A:非同期送信。*2
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. Public Bln_Add_SmtpClient_SendCompleted As Boolean = False ' イベントの設定フラグ. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() e.Cancel = True Else ' リソースを解放します. ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. ' 送信スタイル. .SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient End With ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 非同期送信(イベントをセットします). AddHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = True ' 送信します. Dim Bln_Ret As Boolean = ClsPub_Smtp.SendMail(False) If Not Bln_Ret Then If Not ClsPub_Smtp.IsSendAsync Then ' 非同期送信を実行していません. SnedErrMsg If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If End If End If Catch ex As Exception Finally End Try End Sub ' 送信の中止. Private Sub Button2_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button2.Click Try If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() End If Catch ex As Exception Finally End Try End Sub ' 送信に失敗したメッセージを表示. Private Sub SnedErrMsg() Try Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) Catch ex As Exception Finally End Try End Sub ' 非同期送信の終了. Private Sub SmtpClient_SendCompleted(ByVal e As System.ComponentModel.AsyncCompletedEventArgs) ' 1回目の呼び出しを確認. If ClsPub_Smtp.CallCount_SmtpClient_SendCompleted = 0 Then ' 呼び出し件数をカウントアップします. ClsPub_Smtp.CallCount_SmtpClient_SendCompleted += 1 Try If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If Catch ex As Exception Finally If e.Cancelled Then SnedErrMsg Else If (e.Error Is Nothing) Then MsgBox("送信しました。") Else MsgBox("送信エラーが発生しました。") End If End If End Try End If End Sub End Class使用例B:非同期送信。*1
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. Public Bln_Add_TcpClient_SendCompleted As Boolean = False ' イベントの設定フラグ. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() e.Cancel = True Else ' リソースを解放します. ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. ' 送信スタイル. .SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient .TcpDeliveryNotification_NOTIFY_Style = NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE .TcpDeliveryNotification_RET_Style = NSDSmtp.TCP_MAIL_OPTION_RET.HDRS .TcpDeliveryNotification_ORCPT = True End With ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 非同期送信(イベントをセットします). AddHandler ClsPub_Smtp.TcpClient_SendCompleted, AddressOf TcpClient_SendCompleted Bln_Add_TcpClient_SendCompleted = True ' 送信します. Dim Bln_Ret As Boolean = ClsPub_Smtp.SendMail(False) If Not Bln_Ret Then If Not ClsPub_Smtp.IsSendAsync Then ' 非同期送信を実行していません. SnedErrMsg If Bln_Add_TcpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.TcpClient_SendCompleted, _ AddressOf TcpClient_SendCompleted Bln_Add_TcpClient_SendCompleted = False End If End If End If Catch ex As Exception Finally End Try End Sub ' 送信の中止. Private Sub Button2_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button2.Click Try If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() End If Catch ex As Exception Finally End Try End Sub ' 送信に失敗したメッセージを表示. Private Sub SnedErrMsg() Try Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) Catch ex As Exception Finally End Try End Sub ' 非同期送信の終了. Private Sub TcpClient_SendCompleted(ByVal Val_TcpErrInfo As NSDSmtp.NSDSmtp_TcpResultInfo) Try If Bln_Add_TcpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.TcpClient_SendCompleted, _ AddressOf TcpClient_SendCompleted Bln_Add_TcpClient_SendCompleted = False End If Catch ex As Exception Finally Dim Str_Msg As String = "送信しました。" If Not Val_TcpErrInfo.Success Then Str_Msg = "送信に失敗しました。" & ControlChars.CrLf & Val_TcpErrInfo.SendErrMsg End If MsgBox(Str_Msg) End Try End Sub End Class
名前:GetSendErrNo
構文:Public Function GetSendErrNo() As MAIL_SEND_ERR
機能:送信処理後のエラー番号を戻します。
引数:なし。
戻り値:MAIL_SEND_ERR
戻り値の説明:
エラー番号を戻します。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "エラー番号:" & ClsPub_Smtp.GetSendErrNo() Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
名前:GetSendErrMsg
構文:Public Function GetSendErrMsg() As String
機能:送信処理後のエラーメッセージを戻します。
引数:なし。
戻り値:String
戻り値の説明:
エラーメッセージを戻します。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. End With ' 送信スタイル. Select Case Me.RadioButton1.Checked Case True SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient Case False SendInfo.SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient SendInfo.TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE SendInfo.TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS SendInfo.TcpDeliveryNotification_ORCPT = False End Select ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 同期送信. If ClsPub_Smtp.SendMail() Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "エラー番号:" & ClsPub_Smtp.GetSendErrNo() Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
名前:GetTcpResultInfo
構文:Public Function GetTcpResultInfo() As NSDSmtp_TcpResultInfo
機能:送信結果を戻します。*1
引数:なし。
戻り値の説明:
送信結果を戻します。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. ' 送信スタイル. .SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient .TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE .TcpDeliveryNotification_RET_Style = _ NSDSmtp.TCP_MAIL_OPTION_RET.HDRS .TcpDeliveryNotification_ORCPT = True End With ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 同期送信. ClsPub_Smtp.SendMail(True) Dim ClsPrv_TcpResultInfo As NSDSmtp.NSDSmtp_TcpResultInfo = _ ClsPub_Smtp.GetTcpResultInfo() If ClsPrv_TcpResultInfo.Success Then MsgBox("送信しました。") Else Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPrv_TcpResultInfo.SendErrMsg() & "」" MsgBox(Str_Msg) End If Catch ex As Exception Finally End Try End Sub End Class
名前:IsSendAsync
構文:Public Function IsSendAsync() As Boolean
機能:非同期送信命令を実行しているかを戻します。
※SendMail(False)の戻り値がFalseの場合に確認用で使用します。
引数:なし。
戻り値:Boolean
戻り値の説明:
True :非同期送信命令を実行しています。
False:非同期送信命令を実行していません。使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. Public Bln_Add_SmtpClient_SendCompleted As Boolean = False ' イベントの設定フラグ. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() e.Cancel = True Else ' リソースを解放します. ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. ' 送信スタイル. .SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient End With ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 非同期送信(イベントをセットします). AddHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = True ' 送信します. Dim Bln_Ret As Boolean = ClsPub_Smtp.SendMail(False) If Not Bln_Ret Then If Not ClsPub_Smtp.IsSendAsync Then ' 非同期送信を実行していません. SnedErrMsg If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If End If End If Catch ex As Exception Finally End Try End Sub ' 送信の中止. Private Sub Button2_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button2.Click Try If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() End If Catch ex As Exception Finally End Try End Sub ' 送信に失敗したメッセージを表示. Private Sub SnedErrMsg() Try Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) Catch ex As Exception Finally End Try End Sub ' 非同期送信の終了. Private Sub SmtpClient_SendCompleted(ByVal e As System.ComponentModel.AsyncCompletedEventArgs) ' 1回目の呼び出しを確認. If ClsPub_Smtp.CallCount_SmtpClient_SendCompleted = 0 Then ' 呼び出し件数をカウントアップします. ClsPub_Smtp.CallCount_SmtpClient_SendCompleted += 1 Try If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If Catch ex As Exception Finally If e.Cancelled Then SnedErrMsg Else If (e.Error Is Nothing) Then MsgBox("送信しました。") Else MsgBox("送信エラーが発生しました。") End If End If End Try End If End Sub End Class
名前:IsSend
構文:Public Function IsSend() As Boolean
機能:非同期送信中かを返します。
引数:なし。
戻り値:Boolean
戻り値の説明:
True :非同期送信中。
False:非同期の送信は行っていません。使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. Public Bln_Add_SmtpClient_SendCompleted As Boolean = False ' イベントの設定フラグ. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() e.Cancel = True Else ' リソースを解放します. ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. ' 送信スタイル. .SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient End With ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 非同期送信(イベントをセットします). AddHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = True ' 送信します. Dim Bln_Ret As Boolean = ClsPub_Smtp.SendMail(False) If Not Bln_Ret Then If Not ClsPub_Smtp.IsSendAsync Then ' 非同期送信を実行していません. SnedErrMsg If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If End If End If Catch ex As Exception Finally End Try End Sub ' 送信の中止. Private Sub Button2_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button2.Click Try If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() End If Catch ex As Exception Finally End Try End Sub ' 送信に失敗したメッセージを表示. Private Sub SnedErrMsg() Try Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) Catch ex As Exception Finally End Try End Sub ' 非同期送信の終了. Private Sub SmtpClient_SendCompleted(ByVal e As System.ComponentModel.AsyncCompletedEventArgs) ' 1回目の呼び出しを確認. If ClsPub_Smtp.CallCount_SmtpClient_SendCompleted = 0 Then ' 呼び出し件数をカウントアップします. ClsPub_Smtp.CallCount_SmtpClient_SendCompleted += 1 Try If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If Catch ex As Exception Finally If e.Cancelled Then SnedErrMsg Else If (e.Error Is Nothing) Then MsgBox("送信しました。") Else MsgBox("送信エラーが発生しました。") End If End If End Try End If End Sub End Class
名前:SendeStop
構文:Public Function SendeStop() As Boolean
機能:非同期送信を中止します。
引数:なし。
戻り値:Boolean
戻り値の説明:
True :中止処理を行いました。
False:中止できません。使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. Public Bln_Add_SmtpClient_SendCompleted As Boolean = False ' イベントの設定フラグ. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() e.Cancel = True Else ' リソースを解放します. ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. ' 送信スタイル. .SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient End With ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 非同期送信(イベントをセットします). AddHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = True ' 送信します. Dim Bln_Ret As Boolean = ClsPub_Smtp.SendMail(False) If Not Bln_Ret Then If Not ClsPub_Smtp.IsSendAsync Then ' 非同期送信を実行していません. SnedErrMsg If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If End If End If Catch ex As Exception Finally End Try End Sub ' 送信の中止. Private Sub Button2_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button2.Click Try If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() End If Catch ex As Exception Finally End Try End Sub ' 送信に失敗したメッセージを表示. Private Sub SnedErrMsg() Try Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) Catch ex As Exception Finally End Try End Sub ' 非同期送信の終了. Private Sub SmtpClient_SendCompleted(ByVal e As System.ComponentModel.AsyncCompletedEventArgs) ' 1回目の呼び出しを確認. If ClsPub_Smtp.CallCount_SmtpClient_SendCompleted = 0 Then ' 呼び出し件数をカウントアップします. ClsPub_Smtp.CallCount_SmtpClient_SendCompleted += 1 Try If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If Catch ex As Exception Finally If e.Cancelled Then SnedErrMsg Else If (e.Error Is Nothing) Then MsgBox("送信しました。") Else MsgBox("送信エラーが発生しました。") End If End If End Try End If End Sub End Class
●NSDSmtpイベントの説明
名前:SmtpClient_SendCompleted
構文:Public Event SmtpClient_SendCompleted( e )
機能:非同期送信の送信終了イベント。*2
引数:
名前 型 引数渡しの方法 説明 e System.ComponentModel.AsyncCompletedEventArgs 値渡し(ByVal) 非同期操作の結果を渡します。 戻り値:なし。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. Public Bln_Add_SmtpClient_SendCompleted As Boolean = False ' イベントの設定フラグ. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() e.Cancel = True Else ' リソースを解放します. ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. ' 送信スタイル. .SendStyle = NSDSmtp.MAIL_SEND_STYLE.SmtpClient End With ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 非同期送信(イベントをセットします). AddHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = True ' 送信します. Dim Bln_Ret As Boolean = ClsPub_Smtp.SendMail(False) If Not Bln_Ret Then If Not ClsPub_Smtp.IsSendAsync Then ' 非同期送信を実行していません. SnedErrMsg If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If End If End If Catch ex As Exception Finally End Try End Sub ' 送信の中止. Private Sub Button2_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button2.Click Try If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() End If Catch ex As Exception Finally End Try End Sub ' 送信に失敗したメッセージを表示. Private Sub SnedErrMsg() Try Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) Catch ex As Exception Finally End Try End Sub ' 非同期送信の終了. Private Sub SmtpClient_SendCompleted(ByVal e As System.ComponentModel.AsyncCompletedEventArgs) ' 1回目の呼び出しを確認. If ClsPub_Smtp.CallCount_SmtpClient_SendCompleted = 0 Then ' 呼び出し件数をカウントアップします. ClsPub_Smtp.CallCount_SmtpClient_SendCompleted += 1 Try If Bln_Add_SmtpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.SmtpClient_SendCompleted, _ AddressOf SmtpClient_SendCompleted Bln_Add_SmtpClient_SendCompleted = False End If Catch ex As Exception Finally If e.Cancelled Then SnedErrMsg Else If (e.Error Is Nothing) Then MsgBox("送信しました。") Else MsgBox("送信エラーが発生しました。") End If End If End Try End If End Sub End Class
名前:TcpClient_SendCompleted
構文:Public Event TcpClient_SendCompleted( TcpResultInfo )
機能:非同期送信の送信終了イベント。*1
引数:
名前 型 引数渡しの方法 説明 TcpResultInfo NSDSmtp_TcpResultInfo 値渡し(ByVal) 結果情報用クラスを渡します。 戻り値:なし。
使用例:
Public Class Form1 Public ClsPub_Smtp As NSDSmtp = Nothing ' NSDSmtp. Public Bln_Add_TcpClient_SendCompleted As Boolean = False ' イベントの設定フラグ. ' FormClosingイベント. Private Sub Form1_FormClosing( ByVal sender As Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs _ ) Handles Me.FormClosing Try ' リソースを解放します. If Not (ClsPub_Smtp Is Nothing) Then If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() e.Cancel = True Else ' リソースを解放します. ClsPub_Smtp.Dispose() ClsPub_Smtp = Nothing End If End If Catch ex As Exception Finally End Try End Sub ' Loadイベント. Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles MyBase.Load Try ' SMTP用クラスを作成します. ClsPub_Smtp = New NSDSmtp ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB2010 SMTP Sample Mail Program.") Catch ex As Exception Finally End Try End Sub ' メールを送信します. Private Sub Button1_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Try ' 宛先、Cc、Bccのセット. Dim Str_Address As String = "" ' アドレス. For RecipientType As NSDSmtp.MAIL_SMTP_RECIPIENTTYPE = _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo To _ NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc Select Case RecipientType Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpTo ' To. Str_Address = "" ' <- Toアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpCc ' Cc. Str_Address = "" ' <- Ccアドレスをセット(';'区切り). Case NSDSmtp.MAIL_SMTP_RECIPIENTTYPE.SmtpBcc ' Bcc. Str_Address = "" ' <- Bccアドレスをセット(';'区切り). End Select Dim Str_Data() As String = Str_Address.Split(";"c) For Each Str_Add As String In Str_Data If Not (Str_Add Is Nothing) Then ClsPub_Smtp.SetAddress(Str_Add, RecipientType) End If Next Next RecipientType ' 件名、本文のセット. Dim SendInfo As New NSDSmtp.MAIL_SEND_INFO With SendInfo ' 件名. .Subject = "" ' <- 件名をセット. ' 本文. .Body = "" ' <- 本文をセット. ' 送信スタイル. .SendStyle = NSDSmtp.MAIL_SEND_STYLE.TcpClient .TcpDeliveryNotification_NOTIFY_Style = _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.SUCCESS Or _ NSDSmtp.TCP_RCPT_OPTION_NOTIFY.FAILURE .TcpDeliveryNotification_RET_Style = NSDSmtp.TCP_MAIL_OPTION_RET.HDRS .TcpDeliveryNotification_ORCPT = True End With ' メール送信情報用のクラスを設定します. ClsPub_Smtp.SetSendInfo(SendInfo) ' 非同期送信(イベントをセットします). AddHandler ClsPub_Smtp.TcpClient_SendCompleted, _ AddressOf TcpClient_SendCompleted Bln_Add_TcpClient_SendCompleted = True ' 送信します. Dim Bln_Ret As Boolean = ClsPub_Smtp.SendMail(False) If Not Bln_Ret Then If Not ClsPub_Smtp.IsSendAsync Then ' 非同期送信を実行していません. SnedErrMsg If Bln_Add_TcpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.TcpClient_SendCompleted, _ AddressOf TcpClient_SendCompleted Bln_Add_TcpClient_SendCompleted = False End If End If End If Catch ex As Exception Finally End Try End Sub ' 送信の中止. Private Sub Button2_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button2.Click Try If ClsPub_Smtp.IsSend() Then ' 非同期の送信中なので、送信を中止します. ClsPub_Smtp.SendeStop() End If Catch ex As Exception Finally End Try End Sub ' 送信に失敗したメッセージを表示. Private Sub SnedErrMsg() Try Dim Str_Msg As String = "送信に失敗しました。" Str_Msg &= ControlChars.CrLf & "「" & ClsPub_Smtp.GetSendErrMsg() & "」" MsgBox(Str_Msg) Catch ex As Exception Finally End Try End Sub ' 非同期送信の終了. Private Sub TcpClient_SendCompleted(ByVal Val_TcpErrInfo As NSDSmtp.NSDSmtp_TcpResultInfo) Try If Bln_Add_TcpClient_SendCompleted Then ' イベントを解除します. RemoveHandler ClsPub_Smtp.TcpClient_SendCompleted, _ AddressOf TcpClient_SendCompleted Bln_Add_TcpClient_SendCompleted = False End If Catch ex As Exception Finally Dim Str_Msg As String = "送信しました。" If Not Val_TcpErrInfo.Success Then Str_Msg = "送信に失敗しました。" & ControlChars.CrLf & Val_TcpErrInfo.SendErrMsg End If MsgBox(Str_Msg) End Try End Sub End Class
*1 MAIL_SEND_INFOのSendStyleがMAIL_SEND_STYLE.TcpClientの時のみ有効です。 *2 MAIL_SEND_INFOのSendStyleがMAIL_SEND_STYLE.SmtpClientの時のみ有効です。
Copyright (C) 2009-2012 Nihon System Developer Corp. All Rights Reserved.