NSDSmtp メンバ
Smtpでメール送信をします。
●コンストラクタ
名前
説明
NSDSmtpを初期化します。
●プロパティの一覧
名前
説明
表示名をBase64で送信するかを指定します。
非同期送信時の送信終了イベントの呼び出し回数を確認するカウンタで使用します。
●メソッドの一覧
名前
引数
戻り値
説明
なし
なし
リソースの解放を行います。
※終了時に必ず呼び出します。(内部でCls_Dispose()を呼び出しています終了処理でCls_Dispose()を呼び出している場合は、呼び出す必要はありません。)
なし
なし
リソースの解放を行います。
※終了時に必ず呼び出します。(終了処理でDispose()を呼び出している場合は、呼び出す必要はありません。)
( String )
Boolean型
メーラー名を設定します。
なし
String型
メーラー名を取得します。
Boolean型
表示名と添付ファイル名のエンコード方式をSystem.Text.Encodingで設定します。
Boolean型
表示名と添付ファイル名のエンコード方式をコードページで設定します。
なし
System.Text.Encoding型
表示名と添付ファイル名のエンコード方式を取得します。
( String , String )
Boolean型
メールの差出人を設定します。
( String , String )
Boolean型
メールの差出人を取得します。
( String , String )
Boolean型
メッセージの差出人を設定します。
( String , String )
Boolean型
メッセージの差出人を取得します。
Boolean型
1アドレスを指定しTo、Cc、Bccのアドレスを設定します。
Boolean型
複数アドレスを指定しTo、Cc、Bccのアドレスを設定します。
Boolean型
複数アドレス、表示名を指定しTo、Cc、Bccのアドレスを設定します。
Boolean型
サーバー情報を設定します。
Boolean型
サーバー情報を取得します。
( String , String )
Boolean型
アカウント情報を設定します。
( String , String )
Boolean型
アカウント情報を取得します。
Boolean型
1つの添付ファイルを設定します。
Boolean型
複数の添付ファイルを設定します。
( MAIL_SEND_INFO )
Boolean型
メール送信情報用のクラスを設定します。
( [Boolean] )
Boolean型
メールを送信します。
なし
送信処理後のエラー番号を戻します。
なし
String型
送信処理後のエラーメッセージを戻します。
なし
Boolean型
非同期送信命令を実行しているかを戻します。
※SendMail(False)の戻り値がFalseの場合に確認用で使用します。なし
Boolean型
非同期送信中かを返します。
なし
Boolean型
非同期送信を中止します。
●イベントの一覧
名前
引数
戻り値
説明
( System.ComponentModel.AsyncCompletedEventArgs )
なし
非同期送信の送信終了イベント。
●データ用クラスの一覧
構文:
Public Class MAIL_SEND_INFO
Public Subject As String = Nothing
Public SubjectEncode As System.Text.Encoding
Public SubjectBase64 As Boolean = True
Public Body As String = Nothing
Public BodyEncode As System.Text.Encoding
Public BodyTransferEncoding As CONTENT_TRANSFER_ENCODING = CONTENT_TRANSFER_ENCODING.Base64
Public Priority As MAIL_PRIORITY = MAIL_PRIORITY.Normal
Public ReadingCheck As Boolean = False
Public DeliveryNotification As Boolean = False
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.Base64)
Priority
重要度。(既定値:MAIL_PRIORITY.Normal)
ReadingCheck
Boolean
開封確認。(既定値:False)
DeliveryNotification
Boolean
配信通知。(既定値:False)
構文:
Public Class OUTLOOK_FOLDER
Public Host As String = Nothing
Public Port As Int32 = 25
Public TimeOut As Int32 = 100000
Public AttestationType As MAIL_ATTESTATION_TYPE = MAIL_ATTESTATION_TYPE.Attestation_Account
Public DeliveryMethod As SmtpDeliveryMethod = SmtpDeliveryMethod.Network
End Class内容:サーバー情報。
名前
型
説明
Host
String
ホスト名またはIPアドレス。(既定値:Nothing)
Port
Int32
SMTPポート番号。(既定値:25)
TimeOut
Int32
タイムアウトする時間(ミリ秒)。(既定値:100000)
AttestationType
認証タイプ。(既定値:MAIL_ATTESTATION_TYPE.Attestation_Account)
DeliveryMethod
SmtpDeliveryMethod
送信方法。(既定値:SmtpDeliveryMethod.Network)
●定数の一覧
名前:MAIL_ATTESTATION_TYPE (認証タイプ)
名前
内容
Attestation_Account
アカウント認証。
Attestation_windwos
Windows認証。
UnAttestation
認証なし。
名前: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
タイムアウトしました。
UnKnownErr
不明なエラー。
名前:CONTENT_TRANSFER_ENCODING (本文のエンコード方式)
名前
内容
DefaultEncodeing
デフォルトのEncodeing(QuotedPrintable)。
Base64
Base64。
SevenBit
7bit。
●NSDSmtpコンストラクタの説明
使用法: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.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
●NSDSmtpプロパティの説明
構文: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
構文:Public Property CallCount_SmtpClient_SendCompleted() As Integer
機能:非同期送信時の送信終了イベントの呼び出し回数を確認するカウンタで使用します。
引数:なし。
値: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.Cls_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 VB.NET 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 = "" ' <- 本文をセット.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メソッドの説明
名前: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()
機能:リソースの解放を行います。
※終了時に必ず呼び出します。
(終了処理で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
構文: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.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 ' メーラ名をセットします. ClsPub_Smtp.SetMailerName("NSD VB.NET 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
構文: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.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 ' メーラ名をセットします. ClsPub_Smtp.SetMailerName("NSD VB.NET 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
機能:表示名と添付ファイル名のエンコード方式を設定します。
@表示名と添付ファイル名のエンコード方式を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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
値渡し(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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
構文: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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
構文: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
構文: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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
構文: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
構文: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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
値渡し(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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
値渡し(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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
値渡し(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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
構文:Public Function SetServerInfo( ServerInfo ) As Boolean
機能:サーバー情報を設定します。
引数:
名前
型
引数渡しの方法
説明
ServerInfo
値渡し(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.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 ' メーラ名をセットします. ClsPub_Smtp.SetMailerName("NSD VB.NET 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
構文:Public Function GetServerInfo( ServerInfo ) As Boolean
機能:サーバー情報を取得します。
引数:
名前
型
引数渡しの方法
説明
ServerInfo
参照渡し(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.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 ' メーラ名をセットします. ClsPub_Smtp.SetMailerName("NSD VB.NET 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
構文: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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
構文: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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
機能:添付ファイルを設定します。
構文: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
値渡し(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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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: 非同期送信。
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.Cls_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 VB.NET 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 ' メール送信情報用のクラスを設定します. 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
名前: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
構文: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.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 ' メーラ名をセット. ClsPub_Smtp.SetMailerName("NSD VB.NET 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 ' メール送信情報用のクラスを設定します. 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
名前: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.Cls_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 VB.NET 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 ' メール送信情報用のクラスを設定します. 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.Cls_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 VB.NET 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 ' メール送信情報用のクラスを設定します. 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.Cls_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 VB.NET 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 ' メール送信情報用のクラスを設定します. 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イベントの説明
構文:Public Event SmtpClient_SendCompleted( e )
機能:非同期送信の送信終了イベント。
引数:
名前
型
引数渡しの方法
説明
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.Cls_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 VB.NET 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 ' メール送信情報用のクラスを設定します. 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
Copyright (C) 2009-2010 Nihon System Developer Corp. All Rights Reserved.