Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7全般 : Access 2013)
メール自動送信
投稿日時: 18/03/06 11:52:13
投稿者: yamasho

お世話になります。
 
今までBASP21を利用してメールの自動送信をしていました。
フォームに日付を入力しコマンドボタンを押したら、
日々の売上を集計し、メール本文に売上高を記載し、
関係者にメールを送っていました。
 
今までは問題なく送れていたのですが、
最近は相手に届くのに半日以上かかってしまいます。
 
そこでVBAの見直しをしていました。
次のような方法で送っていました。
 
・通常使っているメールは、レンタルサーバーを利用
・BASP21の設定では、SMTPはプロバイダ(OCN)を利用
 
SMTPをOCNにしているのが原因かと思い、
レンタルサーバーのSMTPを利用しようとしましたが、
どうもうまくいきません。
 
送信できませんでした
time out
 
というエラーになってしまいます。
コードは下の通りです。
 
-------------------------------------------------------------------------  
  'SMTPサーバ名:ポート番号:タイムアウト秒
    svname = "**********:465:60"  'レンタルサーバーのSMTP
 
    'ログインID
    id = "**********" 'ユーザー名
 
  'オブジェクトを作成
    Set bobj = CreateObject("basp21")
 
    '宛先
    MailTo = "**********" '相手のメールアドレス
     
    '送信者
    strMLadr = "**********" '自分のメールアドレス
    strDPadr = "私の名前" '自分の表示文字列)
    strPW = "**********" '(送信者メールアドレスのパスワード)
     
    MailFrom = strDPadr & "<" & strMLadr & ">" & vbTab & id & ":" & strPW
 
  '件名
    subj = "送信テスト"
 
    '本文
    body = "おはようございます。"
 
    'メール送信
    msg = bobj.SendMail(svname, MailTo, MailFrom, subj, body, "")
 
    ' 送信チェック
    If msg <> "" Then
        MsgBox "送信できませんでした。" & vbCrLf & msg, vbOKOnly + vbCritical, "エラー"
    Else
        MsgBox "送信に成功しました。", vbOKOnly + vbInformation, "完了"
    End If
-------------------------------------------------------------------------  
 
気になるのは、レンタルサーバーのSMTPの設定では、
認証方式が通常のパスワード認証で、
接続の保護はSSL/TLSを設定するようになっています。
 
BASP21にはこだわっていません。
BASP21を使わない方法がいいとか、
アドバイスもお願い致します。
 
なお、Outlookはインストールされていません。
添付ファイルを送りたい時もあります。
 
よろしくお願い致します。
 

回答
投稿日時: 18/03/06 16:12:21
投稿者: Suzu

こんにちは。
 
BASP21 では SSL 使えないみたいですよ。
 
http://www.b21soft.co.jp/basp21/basp21pfaq.html#difflist
 
 
何を基準に良いと判断すれば良いか判りませんが
 
手っ取り早いのは、Outlook か BASP21 Pro ではないでしょうか。

回答
投稿日時: 18/03/06 16:46:41
投稿者: sk

引用:
今までBASP21を利用してメールの自動送信をしていました。

引用:
今までは問題なく送れていたのですが、
最近は相手に届くのに半日以上かかってしまいます。

引用:
・通常使っているメールは、レンタルサーバーを利用
・BASP21の設定では、SMTPはプロバイダ(OCN)を利用

OCN 側のメールボックスの使用状況については
確認されたのでしょうか。

投稿日時: 18/03/08 09:49:15
投稿者: yamasho

お世話になります。
 
まずOutlookですが、社内で不評で使っていません。
BASP21 Proは値段が高くて断念しました。
 
OCN側のメールボックスの使用状況はどのように確認すれば
いいでしょうか?
 
OCNのメールアドレスは使っておらず、
レンタルサーバーのメールアドレスを使っています。
 
ただBASP21でのSMTPの設定でのみ、
 
strServer = "smtp.****.ocn.ne.jp"
 
とOCNを指定しています。
 
BASP21を使わず、Outlookも使わず、
Accessのみでメールを送信することは可能でしょうか?

回答
投稿日時: 18/03/08 14:57:18
投稿者: Suzu

メールボックス容量は気づかなかった ^^;
 
レンタルサーバーでも、OCNでも、保存しておける容量は有限です。
 
特に良く使用している レンタルサーバーのメアドに関しては
メーラーだったり、WEBメールで確認する事が可能です。
 
https://support.ntt.com/ocn/support/pid2990024376
 
この容量が一杯だと、動作が不安定になります。
場合に依っては、受信・送信共にできなくなります。
 
 
送信時メールのコピーをサーバーに残したりすると、容量は増えます。
また、誰かがそのメアドに、返信してきていたら。。。
  メールを開いていませんから、受信メールは増える一方。
 
 
まずは、確認し、必要な措置をとってみましょう。
また、BASP21 にて OCNへ送信した際、メールボックスにすぐ反映されるかも確認しましょう。
 
 
 

引用:
BASP21を使わず、Outlookも使わず、 Accessのみ

 
メールを送る。。添付ファイル・・・
 
現状、メーラーがきちんと設定されており、添付ファイルが、Accessオブジェクトで良いなら
DoCmd.SendObjectで良いのでは?

回答
投稿日時: 18/03/08 17:44:21
投稿者: Nao

こんにちは。
 
OCNのSMTPサーバーを使用したコードがアップされていないので何とも言えませんが、
SMTPの認証はきちんとされていますか?
 
メールの仕様と基本情報
https://support.ntt.com/ocn/support/pid2990021006
 
を参考にして、

    'SMTPサーバ名:ポート番号:タイムアウト秒 
    svname = "smtp.ocn.ne.jp:587:60" 

    'ログインID (OCNのメールアドレス)
    id = "xxxxxxxx@xxxx.ocn.ne.jp"

    'OCNメールアドレスのパスワード
    strPW = "**********" 

  'オブジェクトを作成 
    Set bobj = CreateObject("basp21") 
  
    '宛先 
    MailTo = "xxxxxxxx@xxxx.xx.xx" '相手のメールアドレス 
     
    '送信者 
    strMLadr = "xxxxxxxx@xxxx.xx.xx" '自分のメールアドレス 
    strDPadr = "私の名前" '自分の表示文字列) 
     
    MailFrom = strDPadr & "<" & strMLadr & ">" & vbTab & id & ":" & strPW & vbTab & "PLAIN"

  '件名 
    subj = "送信テスト" 
  
     '本文 
    body = "おはようございます。" 
  
     'メール送信 
    msg = bobj.SendMail(svname, MailTo, MailFrom, subj, body, "") 
  
     ' 送信チェック 
    If msg <> "" Then 
         MsgBox "送信できませんでした。" & vbCrLf & msg, vbOKOnly + vbCritical, "エラー" 
    Else 
         MsgBox "送信に成功しました。", vbOKOnly + vbInformation, "完了" 
    End If
こんな感じですが試してみてください。
 
yamasho さんの引用:
OCN側のメールボックスの使用状況はどのように確認すれば
いいでしょうか?

OCNメール(Webメール)で確認する事ができます。
 
メールボックスの容量の確認
https://support.ntt.com/ocn/support/pid2990024375
 

投稿日時: 18/03/14 11:28:01
投稿者: yamasho

皆様、お世話になります。
 
実はSMTPの設定はしなくともメール送信できていたので、
それが普通かと思っていました。
 
strServer = "smtp.****.ocn.ne.jp"
 
これだけの設定で送れていました。
いろいろ調べてみるとこれだけではダメみたいですね。
なぜ送れていたのかは不明です。
 
なのでどのメールアドレスを使っていたのかも不明で、
メールボックスの容量確認も、
どのメールアドレスで確認すればいいのか不明でした。
 
きちんとメールアカウントやパスワードを設定して送ろうとしたら、
BASP21はSSLには対応していないということで、
送れませんでした。
 
そこでレンタルサーバーの管理会社に、
SSLを利用しないでメール送信できるのか聞いたら、
出来るということで設定方法を教えてもらいました。
 
今は解決しました。
 
皆様いろいろお騒がせしました。
 
strServer = "smtp.****.ocn.ne.jp"だけの設定で、
メールアカウントもパスワードも設定しないのに、
どうして送れていたのか不明です。
 
解決しましたがすぐには閉じないで、
しばらくしてから閉じさせていただきます。
 
 

回答
投稿日時: 18/03/14 17:59:48
投稿者: Nao

yamasho さんの引用:
strServer = "smtp.****.ocn.ne.jp"だけの設定で、
メールアカウントもパスワードも設定しないのに、
どうして送れていたのか不明です。

OCN網(OCNで接続)で、OCNのSMTPサーバーで
25番ポートを利用して送信していたので、
OCNの迷惑メール対策に辛うじて
引っかからなかったのではないでしょうか。
 
迷惑メール対策が強化されてきているので
決められた送信手順でないとダメに
なってきているのではないかと思います。
 

トピックに返信