使用VBA发送电子邮件,无需用户与电子邮件客户端交互

时间:2014-08-15 17:35:47

标签: email ms-access access-vba

我正在尝试使用此代码通过电子邮件发送附件。但他们将有几百个附件,所以我不希望用户需要与电子邮件客户端进行交互。任何建议都将不胜感激。

Private Sub CreateReports_Click()

Dim x           As String
Dim y           As String
Dim StrSQL      As String
Dim stWhereStr  As String 'Where Condition'
Dim stSection   As String 'Selection from drop down list
Dim stfile      As String
Dim stDocName   As String
Dim StrEmail    As String

StrSQL = "SELECT DISTINCTROW [OPDA ISSR- Courts Users by District/Cir].[Sup], [OPDA ISSR- Courts Users by District/Cir].SupEmail " & _
    "FROM [OPDA ISSR- Courts Users by District/Cir];"
y = Year(Date)


Dim db As DAO.Database
Dim rst As DAO.Recordset
Set db = CurrentDb
Dim qdTemp As DAO.QueryDef
Set qdTemp = db.CreateQueryDef("", StrSQL)
Set rst = qdTemp.OpenRecordset()
If rst.EOF And rst.BOF Then
    MsgBox "No data available for the Ledger Process routine."
Else
    Debug.Print rst.Fields.Count
    rst.MoveFirst
    Do While Not rst.EOF
    x = rst![Sup]
    StrEmail = rst![Supemail]

    stDocName = "Courts - ISSR Recertification Report"
    stWhereStr = "[OPDA ISSR- Courts Users by District/Cir].[SUP]= '" & x & "'"
    stfile = "P:\DFI\FIB\Access Tables\FibCustomers\ISSR Reports\Courts\" & x & " - " & y & " FedInvest InvestOne Recertification.pdf"

    DoCmd.OpenReport stDocName, acPreview, , stWhereStr
    DoCmd.SendObject acSendReport, stDocName, acFormatPDF, StrEmail, , , "My Subject here", "your report"
    DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, stfile
    DoCmd.Close acReport, stDocName

    rst.MoveNext
Loop
End If
rst.Close
Set rst = Nothing
End Sub

2 个答案:

答案 0 :(得分:1)

您可以使用本地电子邮件客户端的API并打开隐藏的实例来创建和发送电子邮件(例如Outlook,Lotus Notes),也可以使用CDO对象。

http://www.rondebruin.nl/win/s1/cdo.htm

即使上面的示例是在Excel中,代码也很有用。如果您正在使用CDO对象,唯一需要确保的是必要的端口是否打开。如果您想使用特定的电子邮件客户端,还要查看此问题的相关主题,大量有效信息。

答案 1 :(得分:0)

发送无人值守电子邮件的最佳方法是使用SMTP。绕过MAPI安全提示并不是一个好主意。

我们的Total Access Emailer插件程序使用SMTP,因此您可以为用户广播大量电子邮件。 Total Access Emailer允许您向列表中的每个人发送个性化电子邮件,并在邮件和主题中嵌入记录中的字段。它还可以将Access报告附加为为每个收件人筛选的PDF文件,以便每个人只能看到他们的数据。其Wizard界面无需编程。如果要自动化VBA库,则可以使用它。更多信息:http://www.fmsinc.com/MicrosoftAccess/Email.asp

提供免费试用:http://www.fmsinc.com/MicrosoftAccess/Email/free-trial.html