michimuc
Goto Top

Outlook: Automatisierte Mailweiterleitung an Empfänger aus Betreff

Email-Weiterleitung an einen Empfänger, dessen Adresse im Betreff steht

Hallo zusammen,

ich nutze Outlook 2000 mit einem Exchange-Server. Mein PC läuft ständig. Ich benötige nun ein Makro, das eingehende Emails auf einen bestimmten Betreff überprüft und dann die Email an einen Empfänger weiterleitet, dessen Email-Adresse im Betreff steht.

Beispiel:
Mein Outlook erhält eine Email von Absender@absender.de.
Betreff: W: Endnutzer@endnutzer.de

Mein Outlook soll nun diesen Betreff auswerten und dann an Endnutzer@endnutzer.de weiterleiten.

Vielen Dank,
Michael Fieber.

Content-Key: 49005

Url: https://administrator.de/contentid/49005

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: Desperado
Desperado 20.01.2007 um 09:54:56 Uhr
Goto Top
Private Sub MailWeiterleiten()

Dim objOut As Outlook.Application
Set objOut = New Outlook.Application

Dim objNameSpace
Set objNameSpace = GetNamespace("MAPI")
Dim objMailFolder As Outlook.MAPIFolder
Set objMailFolder = objNameSpace.GetDefaultFolder(olFolderInbox)
Dim objEmail As Outlook.MailItem
Dim objRec As String


For i = 1 To objMailFolder.Items.Count
Set objEmail = objMailFolder.Items.Item(i)
Set myForward = objEmail.Forward
objRec = objEmail.Subject
myForward.Recipients.Add objRec
myForward.Send
Next i

End Sub

Grüsse, Desperado
Mitglied: MichiMuc
MichiMuc 20.01.2007 um 10:09:25 Uhr
Goto Top
Hallo Desperado,
vielen Dank, ich werd´s am Montag gleich testen. Super!
Danke nochmal,
Michi.
Mitglied: MichiMuc
MichiMuc 22.01.2007 um 08:27:56 Uhr
Goto Top
Hallo Desperado,

es tritt leider folgender Fehler auf:

Laufzeitfehler: '2147467259 (80004005)
Outlook kennt mindestens einen Namen nicht.

Kannst Du damit etwas anfangen?
Michi.
Mitglied: Desperado
Desperado 22.01.2007 um 19:54:57 Uhr
Goto Top
Hi,

hm.. ich glaube mit diesen Laufzeitfehlern kann niemand etwas anfangen ;) An welcher Code-stelle tritt das denn auf? Er müsste ja per Debug zu der Zeile springen...

Grüsse, Desperado

ah moment.. wie genau heisst dein betreff? da darf in meinem codesample NUR die email-adresse stehen, ansonsten wie du oben geschrieben hast "W: Endnutzer@endnutzer.de" müsstest du noch folgende zeile ändern:

objRec = Replace(objEmail.Subject, "W: ", "")
Mitglied: Biber
Biber 22.01.2007 um 20:13:36 Uhr
Goto Top
ich glaube mit diesen Laufzeitfehlern kann niemand etwas anfangen
Ich hab's eben nachgeschlagen...
Laufzeitfehler: '2147467259' bedeutet "Unbekannter Prefix 'W: ' vor dem Empfängernamen" face-wink

Gruß
Biber
Mitglied: MichiMuc
MichiMuc 23.01.2007 um 15:30:41 Uhr
Goto Top
Hallo,

ich hatte im Betreff nur die Email-Adresse eingegeben. Leider springt der Cursor im Debug-Modus nur an den Anfang des Makros. Beim Start des Makros, fragt mich Outlook, ob ich es zulassen möchte, dass eine Anwendung automatisch Daten in meinem Namen versendet. Dies beantworte ich mit ja und dann bricht es ab.

Michael Fieber.
Mitglied: Desperado
Desperado 23.01.2007 um 18:04:28 Uhr
Goto Top
hi,
poste mal deinen jetzigen code...
Mitglied: MichiMuc
MichiMuc 24.01.2007 um 07:24:26 Uhr
Goto Top
Guten Morgen Desperado,

es ist noch immer der gleiche Code, den Du mir anfangs geschrieben hast. Da es auch in Ordnung wäre nur die Email-Adresse in den Betreff zu schreiben, habe ich ihn nicht verändert. Hätte ich etwas angleichen müssen?

Michi.
Mitglied: Desperado
Desperado 24.01.2007 um 19:19:24 Uhr
Goto Top
hi, nein, eigentlich nicht. wenn der fehler kommt, kannst du nicht auf "debuggen" klicken? dann gehst du mit der maus über das wort objRec der Zeile

myForward.Recipients.Add objRec

ein tooltip zeigt dir dabei den wert an. ich nehme an, dass immer noch die email-adresse nicht stimmt.

hast du vielleicht noch andere emails im eingang, die KEINE email-adresse enthalten? ;) dann müsstest du ein eindeutiges kennzeichen in den betreff setzen, wie zb.:

Betreff: DoForward:email@email.com

und pro mail dann den betreff danach prüfen.


mach den code mal rein und sach mir, was in den messageboxen steht:


Private Sub MailWeiterleiten()

Dim objOut As Outlook.Application
Set objOut = New Outlook.Application

Dim objNameSpace
Set objNameSpace = GetNamespace("MAPI")
Dim objMailFolder As Outlook.MAPIFolder
Set objMailFolder = objNameSpace.GetDefaultFolder(olFolderInbox)
Dim objEmail As Outlook.MailItem
Dim objRec As String

For i = 1 To objMailFolder.Items.Count
Set objEmail = objMailFolder.Items.Item(i)
Set myForward = objEmail.Forward
objRec = objEmail.Subject
MsgBox objRec
myForward.Recipients.Add objRec

myForward.Send
Next i

End Sub
Mitglied: MichiMuc
MichiMuc 25.01.2007 um 07:49:26 Uhr
Goto Top
Guten Morgen Desperado,

Fehler erkannt. Ich habe in meinem Outlook zwei Postfächer. Ein persönliches und ein Postfach meiner Abteilung. Das Makro sollte für das Postfach der Abteilung laufen. Es läuft aber in meinem persönlichen. Ich habe nun mal eine Mail mit einer Email-Adresse im Betreff dort hin gelegt. Und es funktioniert. Super!
Kann man irgendwie bestimmen, für welches Postfach es laufen soll?

Danke schonmal,
Michi
Mitglied: Desperado
Desperado 26.01.2007 um 19:16:19 Uhr
Goto Top
du musst doch nur das makro entsprechend platzieren. ich habe mal ein beitrag gehabt, wie man die verschiedenen postfächer in outlook ausliest. da musst du halt checken und mit if else... arbeiten, bis du dein postfach gefunden hast und dann das makro ausführen...