'*******************************************************************************
' メール送信のテスト1(宛先1件のみ)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'*******************************************************************************
Imports System.Net
Public Class frmSendMailTEST1
Private Const g_cnsTitle As String = "メール送信のテスト"
'---------------------------------------------------------------------------
' ↓SMTPサーバのIPアドレスかSMTPサーバ名を記述して下さい。
Private Const g_cnsSMTP As String = "xxx.xxx.xxx.xxx"
' メール送信環境
Private Const g_cnsMailPort As Integer = 25 ' ポート№
Private Const g_cnsTimeout As Integer = 60000 ' タイムアウト
Private Const g_cnsMailSSL As Boolean = False ' SSL使用有無
Private Const g_cnsSMTPAuth As Boolean = False ' SMTP認証使用有無
Private Const g_cnsSMTPAuthID As String = "hoge" ' SMTP認証ユーザーID
Private Const g_cnsSMTPAuthPW As String = "password" ' SMTP認証パスワード
'***************************************************************************
' 「送信」ボタンのクリック
'***************************************************************************
Private Sub BTN_SEND_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BTN_SEND.Click
'-----------------------------------------------------------------------
' 発信元
Dim strFrom As String = TXT_FROM.Text.Trim
' 宛先(複数対応不可)
Dim strTo As String = TXT_TO.Text.Trim
' 件名
Dim strSubj As String = TXT_SUBJ.Text.Trim
' 本文
Dim strBody As String = TXT_BODY.Text.Trim
'-----------------------------------------------------------------------
' 入力内容のチェック
If strFrom = "" Then
MessageBox.Show("「発信元」が入力されていません。", _
g_cnsTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
ElseIf strTo = "" Then
MessageBox.Show("「宛先」が入力されていません。", _
g_cnsTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
ElseIf strSubj = "" Then
MessageBox.Show("「件名」が入力されていません。", _
g_cnsTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
ElseIf strBody = "" Then
MessageBox.Show("「本文」が入力されていません。", _
g_cnsTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
End If
'-----------------------------------------------------------------------
' SMTPクライアントの取得
Dim objSMTPClient As New Mail.SmtpClient()
' メール送信の環境設定(一般の非認証サーバではHostの指定のみで良い)
With objSMTPClient
' SMTPサーバの指定
.Host = g_cnsSMTP
' ポート№
.Port = g_cnsMailPort
' SSL使用
.EnableSsl = g_cnsMailSSL
' SMTP認証(※この記述は現在環境により動作未確認です)
If g_cnsSMTPAuth Then
.Credentials = New NetworkCredential( _
g_cnsSMTPAuthID, g_cnsSMTPAuthPW)
'.UseDefaultCredentials = True
End If
.Timeout = g_cnsTimeout
End With
'-----------------------------------------------------------------------
' メールの送信
BTN_SEND.Enabled = False
Try
objSMTPClient.Send(strFrom, strTo, strSubj, strBody)
' 完了メッセージ
MessageBox.Show("メールを送信しました。", g_cnsTitle, _
MessageBoxButtons.OK, MessageBoxIcon.Information)
' 発信元以外をクリア
TXT_TO.Text = ""
TXT_SUBJ.Text = ""
TXT_BODY.Text = ""
Catch ex As Exception
' エラー表示
MessageBox.Show("メール送信に失敗しました。" & vbCr & ex.Message, _
g_cnsTitle, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
BTN_SEND.Enabled = True
End Sub
'-----------------------------<< End of Source >>---------------------------
End Class
' メール送信の環境設定(一般の非認証サーバではHostの指定のみで良い)
With objSMTPClient
' SMTPサーバの指定
.Host = g_cnsSMTP
' ポート№
.Port = g_cnsMailPort
' SSL使用
.EnableSsl = g_cnsMailSSL
' SMTP認証(※この記述は現在環境により動作未確認です)
If g_cnsSMTPAuth Then
.Credentials = New NetworkCredential( _
g_cnsSMTPAuthID, g_cnsSMTPAuthPW)
'.UseDefaultCredentials = True
End If
.Timeout = g_cnsTimeout
End With
ですが、これは「可能性がある記述」とご理解下さい。