Outlook & Ansender
Geizhals » Forum » Programmierung » Outlook & Ansender (16 Beiträge, 910 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
...
Das hat jetzt gedauert ... sorry
02.02.2018, 18:12:09
Sorry dass das jetzt so lange gedauert hat - falls du noch interessiert bist, hier ist der Code.
Das macht nicht GENAU das was du willst, aber du kannst das sicher rauslesen. Anwendungsfall (bei mir) ist, dass man in einer gemeinsam genutzten Outlook-Mailbox eine Mail markiert, einen speziellen "reply" Button klickt (hinter dem das Makro liegt) und dann das reply-Mail displayed kriegt in dem man seine Antwort schreiben kann. Einfach auf deine Beduerfnisse modifizieren. ABC123 ist jener String, der im Exchange/AD als "Envelope Sender" hinterlegt ist (nicht die Mailadresse; der String hat kein @).  Aus Datenschutzgruenden ist der Abteilungsname als ABC123 maskiert.



Sub ReplyAsABC()

    'declare variables
    Dim objReplyMail As MailItem
    Dim lCount As Long

    'check if we have only 1 mailitem selected (not multiple, not meeting items)
    If Not (Application.ActiveExplorer.Selection.Count = 1 And TypeName(Application.ActiveExplorer.Selection.Item(1)) = "MailItem") Then
        Call MsgBox("Not a single mail item selected!", vbCritical + vbOKOnly, "Wrong selection")
        End
    End If

    'get currently selected mail 
    Dim objMailItem As MailItem
    'create a an reply-mail of the currently selected mail
    Set objMailItem = Application.ActiveExplorer.Selection.Item(1).ReplyAll

    'create reply-mail by copying the created replymail
    'if you don't create a copy, you can't set the .SendUsingAccount property (it's read only)
    'this is FU*** NOWHERE DOCUMENTED - this took me days to find out!!
    Set objReplyMail = objMailItem.Copy

    'FINALLY - it's apparenlty necessary to set all those properties
    'set sender to active-directory entry for ABC123
    objReplyMail.Sender = Application.Session.AddressLists("Global Address List").AddressEntries("ABC123")
    'make sure correct (own) account is used for sending - to make show up in YOUR 'sent' folder
    objReplyMail.SendUsingAccount = Application.Session.accounts(1)
    'set onbehalf mail address
    'objReplyMail.SentOnBehalfOfName = "ABC123"

    'check each recipient if it is ABC123, if so, remove it
    For lCount = 1 To objReplyMail.Recipients.Count
        If objReplyMail.Recipients(lCount).Name = "ABC123" Then
            Call objReplyMail.Recipients.Remove(lCount)
            'yeah i know this is bad style :/
            Exit For
        End If
    Next

    'display reply mail
    Call objReplyMail.Display

End Sub



PS: Die Kommentare habe ich weder fuer GH extra geschrieben noch editiert :-)
PPS: Wieso ist dein Nick eigentl "Gukerl" und nicht "Gurkerl"? |-D

02.02.2018, 18:20 Uhr - Editiert von lsr2, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung