электронная почта с использованием Access и VBA без MAPI - PullRequest
5 голосов
/ 20 апреля 2009

Я хотел бы отправлять электронную почту из Microsoft Access без присмотра, используя VBA. Я понимаю, что встроенный метод «SendObject» использует MAPI, что означает запросы безопасности и что-то вроде Outlook. Поскольку я хочу использовать планировщик заданий для запуска различных отчетов, я отказываюсь от MAPI и предпочитаю другое решение. Не приложение для доставки, а просто на месте. Идеи?

Ответы [ 5 ]

5 голосов
/ 22 апреля 2009

Вот тестовый код, который работал для меня с CDO и gmail.

Sub mtest()

Dim cdoConfig
Dim msgOne

Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = 465
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "gmailname"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "yourpw"

.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

.Update
End With

Set msgOne = CreateObject("CDO.Message")
Set msgOne.Configuration = cdoConfig
msgOne.To = "target@target.com"
msgOne.From = "I@dontThinkThisIsUsed.com"
msgOne.Subject = "Test email"
msgOne.TextBody = "It works just fine"
msgOne.send
End Sub
1 голос
/ 11 июня 2009

Outlook Redemption является бесплатным и очень широко используется: http://www.dimastr.com/redemption/

Это очень очень близко к исходной объектной модели внешнего вида, поэтому кривая обучения - просто:)

1 голос
/ 22 апреля 2009

Я делаю это таким образом, обратите внимание, у вас должен быть установлен Outlook для работы.


Sub btnSendEmail_Click()
    Dim OutApp As Object
    Dim OutMail As Object

    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon

    strBody = "<html><head></head><body>"
    strBody = strBody & "Your message goes here"
    strBody = strBody & "</body></html>"

    Set OutMail = OutApp.CreateItem(0)

    OutMail.To = "name@example.com"
    OutMail.BCC = "bcc@example.com"
    OutMail.Subject = "Test message"
    OutMail.HTMLBody = strBody


    OutMail.Send  'Send | Display
    Set OutMail = Nothing
End Sub
1 голос
/ 21 апреля 2009

Возможно, вам пригодится Tail Toews FAQ по электронной почте .

1 голос
/ 20 апреля 2009

Вам понадобится SMTP-сервер, который позволит вам отправлять электронную почту. Затем вам нужно использовать объект сообщения CDO.

...