通过CDO向包含其记录的多个收件人发送电子邮件

阿尔文

我有一个当前发送HTML格式消息的代码,该消息从DB查询记录,然后发送给特定的人群。

但是我想将代码功能扩展为从数据库表中查找收件人,并发送HTML格式的信息,其中包含特定收件人的记录。样品细节

Public Function sendmail()

    Dim db As DAO.Database
    Dim rec As DAO.Recordset
    Dim strQry, strTo As String
    Dim aHead(1 To 11) As String
    Dim aRow(1 To 11) As String
    Dim aBody(), aBody2 As String
    Dim lCnt As Long
    Dim getdate As String
    Dim iConf As Object
    Dim strbody As String
    Dim Flds As Variant


    aHead(1) = "RecordID"
    aHead(2) = "Name"
    aHead(3) = "Gender"
    aHead(4) = "Transaction Code"
    aHead(5) = "Mobile"

    lCnt = 1
    ReDim aBody(1 To lCnt)
    aBody(lCnt) = "<HTML><body><br>Dear All,</br> <br>Good Day.</br> <br>Please refer below for the details of your current system records & " & _
    "Kindly assist to check and confirm. </br>  " & _
    "<br><table border='2'><tr><th>" & Join(aHead, "</th><th>") & "</th></tr>"

    strQry = "SELECT * FROM tblrecon "
    Set db = CurrentDb
    Set rec = CurrentDb.OpenRecordset(strQry)
    If rec.RecordCount <> 0 Then

    If Not (rec.EOF) Then
        Do While Not rec.EOF
            strTo = rec.Fields("Email")
            lCnt = lCnt + 1
            ReDim Preserve aBody(1 To lCnt)
            aRow(1) = rec("RecordID")
            aRow(2) = rec("Name")
            aRow(3) = rec("Gender")
            aRow(4) = rec("TransactionCode")
            aRow(5) = rec("Mobile")
            aBody(lCnt) = "<tr><td>" & Join(aRow, "</td><td>") & "</td></tr>"
            rec.MoveNext
        Loop
    End If

        aBody(lCnt) = aBody(lCnt) & "</table></body></html> <br> Sincerly, </br> <br> System Operator </br>"

        Set iMsg = CreateObject("CDO.Message")
        Set iConf = CreateObject("CDO.Configuration")
        iConf.Load -1
        Set Flds = iConf.Fields
        With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "MySMTPServer"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = "Myport"
        .Update
        End With

            With iMsg
            Set .Configuration = iConf
            Do While rec.EOF And (rec.Fields("Email") = strTo)
            .HTMLBody = Join(aBody, vbNewLine)
            rec.MoveNext
            Loop

            .To = strTo
            .BCC = ""
            .From = "[email protected]"
            .Subject = "Record Summary"
            .send
            End With
        Set iMsg = Nothing
        Set iConf = Nothing
        Set Flds = Nothing

        Else
    Exit Function
End If
End Function
六月7

如果要将单个电子邮件发送给每个收件人,并且仅包含与每个电子邮件有关的记录,则在电子邮件地址循环内构建电子邮件记录主体。这意味着打开电子邮件地址记录集,然后在该循​​环中打开相关数据记录的记录集并遍历该记录集。

Public Function sendmail()

    Dim db As DAO.Database
    Dim rec As DAO.Recordset
    Dim mail As DAO.Recordset

    Dim aHead(1 To 11) As String
    Dim aRow(1 To 11) As String
    Dim aBody(), aBody2 As String
    Dim lCnt As Long
    Dim getdate As String
    Dim iMsg As Object
    Dim iConf As Object
    Dim strbody As String
    Dim Flds As Variant

    aHead(1) = "RecordID"
    aHead(2) = "Name"
    aHead(3) = "Gender"
    aHead(4) = "Transaction Code"
    aHead(5) = "Mobile"

    Set db = CurrentDb
    Set mail = db.OpenRecordset("SELECT DISTINCT Email FROM tblrecon")

    While Not mail.EOF
        lCnt = 1
        ReDim aBody(1 To lCnt)
        aBody(lCnt) = "<HTML><body><br>Dear All,</br> <br>Good Day.</br> <br>Please refer below for the details of your current system records & " & _
        "Kindly assist to check and confirm. </br>  " & _
        "<br><table border='2'><tr><th>" & Join(aHead, "</th><th>") & "</th></tr>"
        Set rec = db.OpenRecordset("SELECT * FROM tblrecon WHERE Email='" & mail!Email & "'")
        If Not rec.EOF Then
            Do While Not rec.EOF
                lCnt = lCnt + 1
                ReDim Preserve aBody(1 To lCnt)
                aRow(1) = rec("RecordID")
                aRow(2) = rec("Name")
                aRow(3) = rec("Gender")
                aRow(4) = rec("TransactionCode")
                aRow(5) = rec("Mobile")
                aBody(lCnt) = "<tr><td>" & Join(aRow, "</td><td>") & "</td></tr>"
                rec.MoveNext
            Loop
            rec.Close
        End If

        aBody(lCnt) = aBody(lCnt) & "</table></body></html> <br> Sincerly, </br> <br> System Operator </br>"

        Set iMsg = CreateObject("CDO.Message")
        Set iConf = CreateObject("CDO.Configuration")
        iConf.Load -1
        Set Flds = iConf.Fields
        With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "MySMTPServer"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = "Myport"
        .Update
        End With

        With iMsg
        Set .Configuration = iConf
        .HTMLBody = Join(aBody, vbNewLine)
        .To = mail!Email
        .BCC = ""
        .From = "[email protected]"
        .Subject = "Record Summary"
        .Send
        End With
        mail.MoveNext
    Loop
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
End

可以使用1个有序记录集来完成此操作,但需要从记录中设置一个带有电子邮件地址的变量,并检查记录集中的电子邮件何时更改,以确定应何时发送电子邮件并为下一封电子邮件启动新的记录集。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过Google向多个收件人发送电子邮件

来自分类Dev

通过nodemailer向多个收件人发送电子邮件

来自分类Dev

MS CRM通过WebService向多个收件人发送电子邮件

来自分类Dev

MS CRM通过WebService向多个收件人发送电子邮件

来自分类Dev

需要通过组合框向多个收件人发送电子邮件

来自分类Dev

如何在春季向多个收件人发送电子邮件

来自分类Dev

如何使用Mandrill API向多个收件人发送电子邮件?

来自分类Dev

使用VBA向多个收件人发送电子邮件

来自分类Dev

如何使用下拉列表Excel VBA向多个收件人发送电子邮件

来自分类Dev

如何使用下拉列表Excel VBA向多个收件人发送电子邮件

来自分类Dev

如何在opencart中向多个收件人发送电子邮件?

来自分类Dev

向Alfresco中的多个收件人发送电子邮件

来自分类Dev

C# MVC 向多个收件人发送电子邮件

来自分类Dev

使用 Python 和 O365 向多个收件人发送电子邮件

来自分类Dev

需要从过滤器数据向多个收件人发送电子邮件

来自分类Dev

如何向数据库表中的多个收件人发送电子邮件?

来自分类Dev

MailApp.sendEmail通过电子邮件向不是收件人的用户发送电子邮件

来自分类Dev

通过宏向多个收件人发送自定义电子邮件

来自分类Dev

如何使Excel向包含工作簿中特定工作表的特定收件人发送电子邮件

来自分类Dev

如何向正文中具有不同文本的多个收件人发送电子邮件

来自分类Dev

向多个收件人发送电子邮件是否会使附件数量超过最大大小限制?

来自分类Dev

从 .Net 应用程序向收件人发送电子邮件,我想检索单击链接的收件人的电子邮件

来自分类Dev

laravel中的邮件,我想发送包含多个收件人的电子邮件

来自分类Dev

AppEngine:向管理员发送电子邮件,记为“通过电子邮件发送的收件人”,而不是“通过电子邮件发送的管理员”

来自分类Dev

多收件人PHP电子邮件表单不发送电子邮件

来自分类Dev

通过身份验证将电子邮件发送给多个收件人

来自分类Dev

通过身份验证将电子邮件发送给多个收件人

来自分类Dev

通过mailjet错误将电子邮件发送给多个收件人

来自分类Dev

如何使用 Xpages 的服务器端 Javascript 向 BCC 收件人发送电子邮件

Related 相关文章

  1. 1

    通过Google向多个收件人发送电子邮件

  2. 2

    通过nodemailer向多个收件人发送电子邮件

  3. 3

    MS CRM通过WebService向多个收件人发送电子邮件

  4. 4

    MS CRM通过WebService向多个收件人发送电子邮件

  5. 5

    需要通过组合框向多个收件人发送电子邮件

  6. 6

    如何在春季向多个收件人发送电子邮件

  7. 7

    如何使用Mandrill API向多个收件人发送电子邮件?

  8. 8

    使用VBA向多个收件人发送电子邮件

  9. 9

    如何使用下拉列表Excel VBA向多个收件人发送电子邮件

  10. 10

    如何使用下拉列表Excel VBA向多个收件人发送电子邮件

  11. 11

    如何在opencart中向多个收件人发送电子邮件?

  12. 12

    向Alfresco中的多个收件人发送电子邮件

  13. 13

    C# MVC 向多个收件人发送电子邮件

  14. 14

    使用 Python 和 O365 向多个收件人发送电子邮件

  15. 15

    需要从过滤器数据向多个收件人发送电子邮件

  16. 16

    如何向数据库表中的多个收件人发送电子邮件?

  17. 17

    MailApp.sendEmail通过电子邮件向不是收件人的用户发送电子邮件

  18. 18

    通过宏向多个收件人发送自定义电子邮件

  19. 19

    如何使Excel向包含工作簿中特定工作表的特定收件人发送电子邮件

  20. 20

    如何向正文中具有不同文本的多个收件人发送电子邮件

  21. 21

    向多个收件人发送电子邮件是否会使附件数量超过最大大小限制?

  22. 22

    从 .Net 应用程序向收件人发送电子邮件,我想检索单击链接的收件人的电子邮件

  23. 23

    laravel中的邮件,我想发送包含多个收件人的电子邮件

  24. 24

    AppEngine:向管理员发送电子邮件,记为“通过电子邮件发送的收件人”,而不是“通过电子邮件发送的管理员”

  25. 25

    多收件人PHP电子邮件表单不发送电子邮件

  26. 26

    通过身份验证将电子邮件发送给多个收件人

  27. 27

    通过身份验证将电子邮件发送给多个收件人

  28. 28

    通过mailjet错误将电子邮件发送给多个收件人

  29. 29

    如何使用 Xpages 的服务器端 Javascript 向 BCC 收件人发送电子邮件

热门标签

归档