Navigation

Einfache EMail

Wie kann man nun eine EMails aus Access heraus versenden?
Entweder verwendet man ein Hyperlinkfeld und dort als Anker mailto, DoCmd.SendObject oder man verwendet eine eigene Outlook-Instanz:

Set objOutlook = New Outlook.Application
Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set objDefaultEMail = objNameSpace.GetDefaultFolder(olFolderOutbox)
Set objEMail = objDefaultEMail.Items.Add(olMailItem)
Set objAtt = objEMail.Attachments

'//Verkürzen des Schreibaufwands
With objEMail
	'Empfänger
    .To = Me!txtEmpfaenger
    If Len(Nz(Me!txtKopie)) <> 0 Then .CC = Me!txtKopie
    If Len(Nz(Me!txtBCC, "")) <> 0 Then .BCC = Me!txtBCC
    'Betreff
    .Subject = Me!txtBetreff
    If Len(Nz(Me!txtText, "")) <> 0 Then .Body = Me!txtText

    'Wenn man eine HTML-Mail versenden möchte, muss man diese auch in HTML erstellen:
    '.HTMLBody = "Hallo Welt!"

    Select Case MsgBox("Soll diese EMail versendet werden oder wollen sie sie nur anzeigen?", _
                    vbYesNoCancel Or vbExclamation Or vbSystemModal Or vbDefaultButton2, "EMailversand")
        Case vbYes
            .Send
        Case vbNo
            .Display
        Case vbCancel
            GoTo Aufraeumen
    End Select
End With

'//Aufraeumen nicht vergessen!
Aufraeumen:
    Set objOutlook = Nothing
    Set objNameSpace = Nothing
    Set objDefaultEMail = Nothing
    Set objEMail = Nothing

Wenn man auch noch Anhänge verwenden möchte, dann muss man diese auf folgende Weise an das MailObjekt übergeben:

objEMail.Attachments.Add CStr(Me!DeinFeld)

'Oder auch in Schleifen:
With objEMail.Attachments
	.Add CStr(rs!DeinFeld)
	rs.MoveNext
Wend