fluluk
Goto Top

Automatische Regel innerhalb eines Öffentlichen Ordners

Hallo,

Im Einsatz habe ich Outlook 2003 und Exchange 2007.

Ich habe einen Öffentlichen Ordner (z.B.) Einkauf. Auf diesem ist der E-Mailempfang aktiviert (einkauf@contoso.com).
Darunter liegt ein Ordner Bestellungen, welcher keine E-Mailadresse besitzt.
ist es möglich eine Regel zu erstellen die alle Mails aus dem Ordner Einkauf mit dem Betreff "Bestellungen" in den Ordner Bestellungen zu verschieben?

Wenn nun also jemand eine Mail an einkauf@contoso.com mit dem Betreff Bestellungen schickt soll diese im Ordner Bestellungen landen, ansonsten soll sie im Ordner Einkauf bleiben.

Gruß fluluk

Content-ID: 214993

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

Ausgedruckt am: 28.10.2024 um 08:10 Uhr

GuentherH
GuentherH 22.08.2013 um 18:03:13 Uhr
Goto Top
Hallo.

Eine Verschieben Regel gibt es meines Wissens für Öffentliche Ordner nicht. Aber gib doch diesem Unterordner eine E-Mail Adresse und erstelle dann im Hubtransport eine Regel dafür.

LG Günther
goscho
goscho 22.08.2013 aktualisiert um 18:09:28 Uhr
Goto Top
Hi fluluk,

dies kannst du nur versuchen, über die Exchange Transportregeln zu lösen.

Organisationskonfiguration -> Hub-Transport -> Transportregeln

Dort eine neue Regel anlegen, die deinen Bedinungen entspricht ("gesendet an Person", "bestimmtes Wort im Betreff") und bei Aktion "Nachricht an Adresse umleiten".

Natürlich muss der Unterordner des ÖOs dann auch mailaktiviert sein.

Edit: Danke Günther, wieder mal zweiter. face-wink
fluluk
fluluk 22.08.2013 um 18:19:09 Uhr
Goto Top
hmmm... das habe ich befürchtet...
benötige ich in dem Fall dann auch ein Exchange CAL oder gilt das nur für Benutzerpostfächer?
goscho
goscho 22.08.2013 um 18:33:55 Uhr
Goto Top
Diese Frage kann ich dir leider nicht genau beantworten.

Schau doch mal hier rein.
keine-ahnung
keine-ahnung 22.08.2013 um 19:41:47 Uhr
Goto Top
Zitat von @fluluk:
Moin aus Nordseeland,
benötige ich in dem Fall dann auch ein Exchange CAL oder gilt das nur für Benutzerpostfächer?
IMHO nur Letzteres. Für ÖO benötigst Du keine CAL.

LG, Thomas
108012
108012 22.08.2013 um 20:29:08 Uhr
Goto Top
Hallo,

Wenn nun also jemand eine Mail an einkauf@contoso.com mit dem Betreff Bestellungen
schickt soll diese im Ordner Bestellungen landen, ansonsten soll sie im Ordner Einkauf bleiben.

Da kann man doch aber mit Regeln Exchange bzw. Outlook lösen, oder irre ich jetzt so gewaltig?

Wenn Absender xyz an Empänger xyz eine Mail schickt und die Bedingung xyz (Im Betreff steht ....) erfüllt wird kommt die
Mail in den Ordner abc wenn nicht dann kommt die Mail in den Ordner absdef.

Sollte das mit einer Regel nicht funktionieren mach zwei Regeln hintereinander und die Regel mit dem Wort
"Bestellungen im Betreff" kommt dann eben zuerst an die Reihe.


Gruß
Dobby
fluluk
fluluk 22.08.2013 um 20:34:30 Uhr
Goto Top
Hallo Dobby,

habe ich schon probiert, im eigenen Postfach funktioniert das, allerdings nicht innerhalb eines öffentlichen Ordners. Ich kann dort zwar eine Regel erstellen, allerdings funktioniert diese nicht automatisch, sondern nur dann, wenn man manuell sagt: Aller Regeln anwenden.

Trotzdem danke für den Tipp.

Gruß
fluluk
goscho
goscho 23.08.2013 um 09:10:10 Uhr
Goto Top
Moin Jungs,

Ihr könnt Günther vertrauen, wenn er schreibt, dass es keine Verschieberegeln mit öffentlichen Ordnern gibt, die automatisch funktionieren.

Daher auch unser Vorschlag, dass mit Transportregeln in Exchange Hub Transport zu lösen.

@keine-ahnung

dass dafür Enterprise-CAL nötig sind, steht im Assistenten ganz unten, wenn man diese Transportregeln einrichten will.

Ob diese dafür wirklich benötigt werden, sollte mal jemand mit richtigem Wissen mitteilen.
GuentherH
GuentherH 23.08.2013 um 16:14:29 Uhr
Goto Top
Für ÖO benötigst Du keine CAL

Korrekt. Exchange CALs sind immer auf die Person bezogen. Und umgekehrt, ohne Exchange CAL (als ohne User mit Postfach) kann man auf den Öffentlichen Ordner nicht zugreifen.

LG Günther
colinardo
colinardo 23.08.2013, aktualisiert am 24.08.2013 um 08:51:29 Uhr
Goto Top
Hi flukuk,
eine andere Möglichkeit wäre ein Transport-Agent den man direkt in den Exchange einbaut, und der eine einfache Weiterleitung realisiert(beschäftige mich gerade damit):

Anzupassen wären in u.s. Code noch diese Zeilen:
string strSearchSubject = "Bestellungen";
string strMailReceivedFor = "einkauf@domain.local";
string strMailTo = "bestellungen@domain.local";
Dabei wäre
strSearchSubject der Betreff nach dem gesucht wird.
strMailReceivedFor die E-Mail-Adresse an die die Mails gegangen sind.
strMailTo ist die Adresse an die Nachricht weitergeleitet wird.

Damit das ganze funktioniert, müsstest du den Unterordner aber auch auf MailEnabled setzen.
namespace Test.Agent.Mailumleitung
{
    using System;
    using System.IO;
    using System.Text;
    using System.Diagnostics;
    using System.Net;
    using System.Net.Security;
    using System.Security.Cryptography.X509Certificates;
    using System.Collections.Generic;
    using Microsoft.Exchange.Data.Transport;
    using Microsoft.Exchange.Data.Transport.Smtp;
    using Microsoft.Exchange.Data.Transport.Email;
    using Microsoft.Exchange.Data.Transport.Routing;
    using Microsoft.Exchange.Data.TextConverters;
 
    public sealed class MailumleitungFactory : RoutingAgentFactory
    {

        public override RoutingAgent CreateAgent(SmtpServer server)
        {
            return new UmleitungService();
        }
    }

    public class UmleitungService : RoutingAgent
    {

		string strSearchSubject = "Bestellungen";  
		string strMailReceivedFor = "einkauf@domain.local";  
		string strMailTo = "bestellungen@domain.local";  
        
		public UmleitungService()
        {
            this.OnSubmittedMessage += new SubmittedMessageEventHandler(this.onSubmittedMessageHandler);
        }

     
        public void onSubmittedMessageHandler(SubmittedMessageEventSource source, QueuedMessageEventArgs eodArgs)
        {
            try
            {
				if (eodArgs.MailItem.Recipients.Count == 1)
                {
					if ((eodArgs.MailItem.Message.Subject == strSearchSubject) && (eodArgs.MailItem.Recipients.Address.ToString() == strMailReceivedFor))
					{
						LogMessage("MailUmleitung", "Leite Bestell E-Mail um an anderen Ordner # Message-ID: " + eodArgs.MailItem.Message.MessageId);  
						eodArgs.MailItem.Recipients.Clear();
						eodArgs.MailItem.Message.To.Clear();
						eodArgs.MailItem.Recipients.Add(new RoutingAddress(strMailTo));
						eodArgs.MailItem.Message.To.Add(new EmailRecipient("Bestellungen", strMailTo));  
					}
				}
           
            }
            catch (Exception ex)
            {
                LogMessage("OnSubmittedMessage",  
                     String.Format("EXCEPTION: Type={0}, Message='{1}'",  
                         ex.GetType().FullName, ex.Message));
            }

        }

        public void LogMessage(string methodName, string message)
        {
            try
            {
                StringBuilder traceMessage = new StringBuilder();
                traceMessage.Append(System.DateTime.Now.ToString("s"));  
                traceMessage.Append("|");  
                traceMessage.Append(methodName);
                traceMessage.Append("|");  
                traceMessage.Append(message);
                traceMessage.Append("\r\n");  

                Trace.WriteLine(traceMessage.ToString());
            }
            catch
            {
                throw;
            }
        }
   
    }
}
Das ganze wird dann in Visual Studio kompililert.
Wie man diesen Agent implementiert kann man hier nachlesen: http://www.msxfaq.de/code/transportagent.htm
Das schöne an den Agenten ist, das man wesentlich feiner festlegen kann was man mit den Mails machen möchte - Voraussetzung man kann programmieren.

Grüße Uwe