'*******************************************************************************
' メール送信のテスト3(Web上のメール送信フォームへのPOST)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'*******************************************************************************
Imports System.Text
Imports System.Web ' 参照に追加すること
Public Class frmSendMailTEST3
Private Const g_cnsTitle As String = "メール送信のテスト"
Private Const g_cnsOK As String = "OK"
'---------------------------------------------------------------------------
' ↓メール送信でPOSTする先のURLを指定して下さい。
Private Const g_cnsMailUrl As String = "http://localhost/MailSend.asp"
'***************************************************************************
' 「送信」ボタンのクリック
'***************************************************************************
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
' CC(複数の場合はカンマで区切る)
Dim strCc As String = TXT_CC.Text.Trim
' BCC(複数の場合はカンマで区切る)
Dim strBcc As String = TXT_BCC.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
'-----------------------------------------------------------------------
' 文字コードを指定(シフトJISにしてあります)
Dim objEncode As Encoding = Encoding.GetEncoding("shift_jis")
' 送信文字列を編集
Dim strPostString As String = _
"TXT_FROM=" & HttpUtility.UrlEncode(strFrom, objEncode) & _
"&TXT_TO=" & HttpUtility.UrlEncode(strTo, objEncode) & _
"&TXT_CC=" & HttpUtility.UrlEncode(strCc, objEncode) & _
"&TXT_BCC=" & HttpUtility.UrlEncode(strBcc, objEncode) & _
"&TXT_SUBJ=" & HttpUtility.UrlEncode(strSubj, objEncode) & _
"&TXT_BODY=" & HttpUtility.UrlEncode(strBody, objEncode)
'-----------------------------------------------------------------------
' 送信処理(Webサーバのメール送信用ASPに引き渡す)
BTN_SEND.Enabled = False
Try
Dim objWebClient As New System.Net.WebClient()
With objWebClient
.Encoding = objEncode ' 文字コードを指定
' ヘッダにContent-Typeを加える
.Headers.Add("Content-Type", "application/x-www-form-urlencoded")
' データを送信し、また受信する
Dim strRet As String = .UploadString(g_cnsMailUrl, strPostString)
' 表示ページを破棄
.Dispose()
' 送信結果表示
If strRet = g_cnsOK Then
' 完了メッセージ
MessageBox.Show("メールを送信しました。", g_cnsTitle, _
MessageBoxButtons.OK, MessageBoxIcon.Information)
' 発信元以外をクリア
TXT_TO.Text = ""
TXT_CC.Text = ""
TXT_BCC.Text = ""
TXT_SUBJ.Text = ""
TXT_BODY.Text = ""
Else
' エラー表示
MessageBox.Show("メール送信に失敗しました。" & vbCr & strRet, _
g_cnsTitle, MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End With
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