0

MS Access のテーブルから電子メール アドレスのリストを取得し、それぞれにテスト メールを送信する次のプログラムを作成しました。コードは次のとおりです。

'Get data back from field birth date
    Set fld = rcdSet.Fields("Email Address")

    'Subject
    olMailItem.Subject = "Mailing List Test"

    'Loop through the records
    For i = 0 To intNumRecords
        'Recipient/s
        olMailItem.To = fld.Value

        'Body of email
        olMailItem.Body = strBodyText

        'Automatically send the email
        olMailItem.Send

       'Reset email item otherwise it won't work
        Set olMailItem = olFolder.Items.Add("IPM.Note")

        'Move to the next record
        rcdSet.MoveNext
    Next

はい、レコード セットを開きましたが、上記のコードを含めていません。だからここに私の質問があります:

  1. 上記の私のアプローチは正しいですか?ループ内でをリセットする必要がありました。olMailItemそうしないと、 が返されType Errorます。複数のメールを送信するためのより良い方法はありますか?

  2. 何が起こるかを確認するために、無効な電子メールを入力しました。別のType Error. とにかくバウンスバックを検出する方法はありますか (メールの見通しがあなたに送信し、それが悪いアドレスであることを通知します) メールを送信しますImmediate Window(この時点での開発目的のため)

ありがとう

注 - メール項目の宣言を追加しました

'Create Outlook object
Dim olApp As Outlook.Application

'Namespace
Dim olNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder

'Create a reference to the email item you will use to send the email
Dim olMailItem As Outlook.MailItem

Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")

Set olFolder = olNS.GetDefaultFolder(olFolderInbox)
Set olMailItem = olFolder.Items.Add("IPM.Note")

forループでolMailItemを再設定しない.Toと、プログラムの一部でエラーが発生します-前述のType Error

4

1 に答える 1