シートのVBAコード
下記のVBAコードを追加してください。
Option Explicit
Private Declare Function SendMail Lib "bsmtp" _
(szServer As String, szTo As String, szFrom As String, _
szSubject As String, szBody As String, szFile As String) As String
Private Function ExSendMail() As Boolean
Dim sret As String
Dim szServer As String 'SMTPサーバー名
Dim szFrom As String '送信元
Dim szTo As String '宛先
Dim szSubject As String '件名
Dim szBody As String '本文
Dim szFile As String '添付ファイル
ExSendMail = False
szServer = Range("H6")
szFrom = Range("H7")
szTo = Range("H7")
szSubject = Range("H9")
szBody = Range("H11")
szFile = ""
On Error GoTo ErrEnd
sret = SendMail(szServer, szTo, szFrom, szSubject, szBody, szFile)
' 送信エラーの場合
If Len(sret) <> 0 Then
MsgBox "送信エラー: " & sret, , "一斉メール送信"
Else
ExSendMail = True
End If
Exit Function
ErrEnd:
MsgBox "送信中にエラーが発生しました。" & vbCrLf & Err.Description, , "一斉メール送信"
End Function
Private Sub CommandButton1_Click()
If ExSendMail Then
MsgBox "正常に送信できました。", , "一斉メール送信"
End If
End Sub
シート画面
「送信テスト」ボタンをクリックすると、「送信元アドレス」から「送信元アドレス」宛にメールを送信します。
正常に送信できた場合、エラーの場合、下画像のようにメッセージが表示されます。
※.メールサーバーが「Outbound Port25
Blocking」に対応している場合、送信できない場合があります。
この場合、SMTPサーバー名:587 のようにSMTPの後ろに「:587」を付けると送信できる場合があります。
メールサーバーが対応していないとできません。
「Outbound
Port25
Blocking」とは25番ポートブロックといわれています。
ウイルスメールや迷惑メール、フィッシングメールなどの防止の為、近年、採用されるプロバイダーが多くなっています。