2009-08-12 3 views
0

Ich schreibe gerade ein VBA-Makro zum Senden von E-Mails und die Nachrichten werden erstellt, aber nicht gesendet, wie ein Fehler generiert wird. Mein aktueller Code lautet:Laufzeitfehler 287 beim Senden von Mail mit Vba in Access 2003

Function CreateHURMail(Filename) 

Dim olApp As Outlook.Application 
Dim objMail As Outlook.MailItem 
Set olApp = New Outlook.Application 
Set objMail = olApp.CreateItem(olMailItem) 

With objMail 
    .Subject = "Test Message" 
    .Body = "Body Text" 
    .To = "[email protected]" 
    .Attachments.Add (Filename) 
    .Display 

    On Error Resume Next 
    .Send 

    'If Err.Number = 287 Then 
    ' MsgBox "Still doesn't work!", vbOKOnly, "DOH!" 
    'End If 
End With 


End Function 

Kann jemand das beheben?

Vielen Dank im Voraus.

+1

Nur wie Anmerkung: Outlook beschränkt stark das Senden von Nachrichten über VBA (aus offensichtlichen Sicherheitsgründen). Ich denke, Sie sollten lieber ein kleines Befehlszeilenprogramm zum Senden von E-Mails verwenden. –

Antwort

3

In Access verwenden Sie DoCmd.SendObject, um eine E-Mail zu senden. Beispiel:

Call DoCmd.SendObject(acSendNoObject, To:="[email protected]", 
    Subject:="Test Message", MessageText:="Body Text", EditMessage:=true) 

Statt kein Objekt zu senden, können Sie auch Tabellen, Abfragen, Formulare, Berichte oder Formulare senden. Es ist nicht möglich, auf diese Weise eine normale Datei anzuhängen.

Wenn Sie Outlook automatisieren und versuchen, eine Nachricht zu senden, wird es von Outlook abgefangen. Abhängig von der Sicherheitseinstellung von Outlook ist das Senden von E-Mails über die Automatisierung nicht möglich. Der Benutzer wird aufgefordert, ein Popup zu verwenden, wenn die Automatisierung zulässig ist, oder die E-Mail einfach zu senden (Vorsicht bei letzterem).

Wenn das Senden der E-Mail abgebrochen wird, weil die Sicherheit das Senden von E-Mails über die Automatisierung nicht zulässt oder der Benutzer im Bestätigungsdialogfeld auf "Nein" geklickt hat, tritt der Fehler 287 auf.

Es gibt zwei Möglichkeiten, um es zu lösen: Deaktivieren Sie die Sicherheit (vollständig oder lassen Sie den Benutzer das Senden der E-Mail bestätigen) oder signieren Sie Ihre MDB-Datei und vertrauen Sie in Outlook. Letzteres ist ziemlich kompliziert, aber am sichersten.

hoffe, das hilft,