Hallo zusammen,
ich möchte in Outlook 2013 folgendes machen:
- Ein Makro soll eine BCC an ein mailarchiv@domain.com senden, wenn E-Mails von bestimmten Absendern oder an bestimmte Empfänger gesendet werden.
- Eine Textdatei enthält diese E-Mail-Adressen, die in einen String eingelesen werden sollen.
Mein Vorgehen bisher:
Public Function txtReadAll() As String
Dim txtDatName As String
Dim txtInhalt As String
Dim numAnzahlZeichen As Long
txtDatName = "M:\Outlook\Adressen.txt"
Open txtDatName For Input As #1
lngAnzahlZeichen = LOF(1)
txtInhalt = Input(lngAnzahlZeichen, #1)
txtReadAll = txtInhalt
Close #1
End Function
Damit habe ich meines Verständnisses nach die Variable mit der Textdatei, also den Adressen, gefüllt.
Hier https://www.outlook-stuff.com/tipps-tricks/programmierung/280-empfaengerabhaengige-mailkopie-bcc.html gibt es ein Gerüst, mit dem das funktionieren soll. Die Variable, die eigentlich kommaseparierte Adressen innerhalb des Makros enthält, habe ich mit der txtReadAll gleichgesetzt, so dass die ausgelesene Textdatei nun in der folgenden Funktion weiterverarbeitet werden sollte. Ob das alles so funktioniert, weiß ich leider nicht, da ich es im Moment nicht testen kann.
Public Function MailCopy(ByRef Item As Object) As Boolean
'=====================================================================
' Sendet eine Mailkopie (an "strBCC") nur bei bestimmten Empfängern
' ("strRecipients").
' (c) Peter Marchert - http://www.outlook-stuff.com
' 2008-11-21 Version 1.0.0
'=====================================================================
Dim objRecipient As Outlook.Recipient ' Einzelner Empfänger
Dim objBCC As Outlook.Recipient ' BCC-Empfänger
Dim strBCC As String ' Adresse des BCC-Empfängers
Dim strRecipients As String ' Adressen der Empfänger
Dim blnFound As Boolean ' Empfänger in E-Mail enthalten
'---------------------------------------------------------------------
' Einstellungen vornehmen
'---------------------------------------------------------------------
strBCC = "mailarchiv@domain.com"
strRecipients = txtReadAll
'---------------------------------------------------------------------
' Ist einer der Empfänger in der E-Mail enthalten?
'---------------------------------------------------------------------
For Each objRecipient In Item.Recipients
If InStr(strRecipients, objRecipient.Address) Then blnFound = True
Next
'---------------------------------------------------------------------
' Wurde einer der Empfänger gefunden?
'---------------------------------------------------------------------
If blnFound Then
Set objBCC = Item.Recipients.Add(strBCC)
objBCC.Type = olBCC
objBCC.Resolve
MailCopy = IIf(objBCC.Resolved, False, True)
End If
'---------------------------------------------------------------------
' Referenz auf BCC-Empfänger löschen
'---------------------------------------------------------------------
Set objBCC = Nothing
'---------------------------------------------------------------------
' Referenz auf Empfänger löschen
'---------------------------------------------------------------------
Set objRecipient = Nothing
End Function
Ich habe grundlegende Kenntnisse in VB und anderen Programmiersprachen, komme hier aber nicht recht weiter, da ich keine praktische Erfahrung mit VB habe. Es wäre toll, wenn ich Hilfe bekommen würde! Wahrscheinlich habe ich irgendwo einen kleinen Kniff vergessen, weswegen das Ganze dann nicht richtig funktioniert.
Tausend Dank,
Christian
Disclaimer:
Ja, ich habe vorher gegooglet. Ja, ich habe die Suchfunktion genutzt. Ja, ich hätte mir in tagelanger mühevoller Kleinarbeit alles selbst zusammensuchen können. Aber dafür gibt es ja Foren wie diese. Vielen Dank für das Unterlassen solcher Fragen und einzeiliger Antworten.
|