Microsoft Access 掲示板

Accessでのメール送信につきまして

4 コメント
views
4 フォロー

AccessのVBAからメールを送る方法について思案しております。

ネットで調査し、コードを書いて実行しましたが「転送においてサーバーに接続できませんでした」と表示され送信できません。
なにか良いサンプルなどありましたらご享受いただけると助かります。

環境:Windows 10
バージョン:Access 2016

概略:メールを送信するだけの簡単な関数を作成し、それを呼び出しているだけの動作テストプログラムです。コード的なエラーは無いのですが送信結果がエラーとなります。
設定しているメール情報は、メールソフトでは問題なく使用できている情報を設定しています。


Function SendMail() As Boolean

    Dim objCDO As New CDO.Message
    
    Dim txtアドレス As String
    Dim txtパスワード As String
    
    txtアドレス = "sample@dummy.co.jp"
    txtパスワード = "passpasspasspass"

On Error GoTo Err_Exit
    
    '戻り値の初期化
    SendMail= False

    With objCDO
        With .Configuration.Fields
          .Item(cdoSMTPServer) = "mail.dummy.co.jp"
          .Item(cdoSendUsingMethod) = cdoSendUsingPort
          .Item(cdoSMTPServerPort) = 587
          .Item(cdoSMTPConnectionTimeout) = 60
          .Item(cdoSMTPAuthenticate) = cdoBasic
          .Item(cdoSMTPUseSSL) = True
          .Item(cdoSendUserName) = txtアドレス
          .Item(cdoSendPassword) = txtパスワード
          .Item(cdoLanguageCode) = CdoCharset.cdoShift_JIS
          .Update
        End With

        .BodyPart.Charset = "文字コード"
        .From = txtアドレス
        .To = "jyusinnsaki@dummy.co.jp"
        .Subject = "送信テスト件名「テストメール送信」"
        .TextBody = "送信テスト本文「テストメール送信」"
        .Send
    End With
    
    MsgBox "メールを送信しました。", vbOKOnly + vbInformation, "送信完了"
    
    '正常終了
    SendMail= True
    Set objCDO = Nothing
    
    Exit Function
    
Err_Exit:
    MsgBox Err.Number & ":" & Err.Description, vbOKOnly + vbCritical, "SendMail()"

End Function

すずやん
作成: 2024/02/15 (木) 16:02:48
通報 ...
1
すずやん 2024/02/15 (木) 16:04:06

なぜか文字コードを記載すると、表記が文字化けしてしまいましたので、別途記載します。
コード中の「文字コード」という部分には「ISO-2022-JP」と記載しています。

2

ちょっと調べましたがこれと同じでしょうか?

CDOでMicrosoft365メールが使えなくなったので調べてみた #mail - Qiita
https://qiita.com/mindwood/items/c5b4475db6ddbfdb0372
中小企業情シス稼業 : VBAからCDOを使用してメール送信時にサーバ接続エラー
https://www.1josys.com/archives/38212996.html

3
すずやん 2024/02/16 (金) 09:09:52 >> 2

ご返信ありがとうございます。
原因は教え得頂いたリンクの2番目と同じでした。
>VBAからCDOを使用してメール送信時にサーバ接続エラー

こちら無事解決しました。

4
すずやん 2024/02/16 (金) 09:14:07

こちら解決できました。ありがとうございます。

原因は下記リンク先にある通り「CDO.Message」は「SMTP over SSL (ポート465)」の SMTP認証方式を使う為、「TLS/STARTTLS (ポート587)」のSMTP認証方式には対応していないとのことでした。

https://mofuken.blogspot.com/2014/07/windows-cdomessage.html

ただ現在使用しているメールサーバーが「SMTP over SSL (ポート465)」に対応していない為、ちょっと修正する必要がありそうです。
当面はSSLをFALSにしてポートを25で使うことで回避することにしました。