Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Anzeigename autom. um Suffix ergänzen

Frage Microsoft Exchange Server

Mitglied: Androxin

Androxin (Level 1) - Jetzt verbinden

20.01.2015, aktualisiert 23:02 Uhr, 1129 Aufrufe, 14 Kommentare

Moin, moin.

Ist es möglich den im AD hinterlegten Anzeigenamen ("Vorname Nachname") beim E-Mail Versand automatisch von Exchange erweitern zu lassen? ("Vorname Nachname | Firma")
Ich möchte diese Erweiterung nicht fest im AD verankern, da auch andere Dienste die Zeichenkette nutzen.

Beste Grüße
Mitglied: colinardo
LÖSUNG 20.01.2015, aktualisiert um 23:02 Uhr
Hallo Androxin,
das ist IMHO nur mit einem benutzerdefinierten Transport-Agent realisierbar ohne den Displayname dauerhaft ändern zu müssen. Mit solch einem Agent lässt sich in den Mailverkehr eingreifen bevor die Mail den Server verlässt. Mit Transport-Rules kannst du leider keine Variablen nutzen, bzw. auch keine Kopfzeilen nur ergänzen.

Grüße Uwe
Bitte warten ..
Mitglied: Androxin
20.01.2015, aktualisiert um 14:28 Uhr
Vielen Dank für die Info.

Gibt es evtl. schon fertige Agents die das übernehmen?
Bitte warten ..
Mitglied: colinardo
LÖSUNG 20.01.2015, aktualisiert um 23:02 Uhr
Zitat von Androxin:
Gibt es evtl. schon fertige Agents die das übernehmen?
http://www.egress.com/transport-agent/

Hier auch ein Ansatz wie man einen Transport-Agent selber schreiben kann (Programmiererfahrung vorausgesetzt):
http://www.administrator.de/forum/automatische-regel-innerhalb-eines-%C ...

Grüße Uwe
Bitte warten ..
Mitglied: Androxin
20.01.2015, aktualisiert um 15:42 Uhr
Vielleicht kann man das ja auch mit dem Simple Display Name lösen und diesen via

Get-remotedomain | set-remotedomain -UseSimpleDisplayName $true

übernehmen.

Ich habe gelesen, dass das Feld nicht mit Sonderzeichen / Umlauten klar kommt. Ist da etwas dran?

Was würde ich mir ggf. zerschießen, wenn ich oben genannten cmdlet ausführe?
Wenn kein SDN hinterlegt ist, versucht Exchange den normalen Displayname zu verwenden oder steht als Absender dann nur die E-Mail Adresse?
Bitte warten ..
Mitglied: Androxin
20.01.2015 um 15:52 Uhr
Probieren geht über studieren...

Umlaute werden ja gar nicht erst in dem Eingabefeld zugelassen.
Schade
Bitte warten ..
Mitglied: colinardo
LÖSUNG 20.01.2015, aktualisiert 21.01.2015
Falls du an einem Transport-Agent interessiert sein solltest, dieser hier macht das gewünschte (getestet auf einem Exchange 2010).
Den String welcher an den Sendernamen angefügt werden wird aus einer Textdatei namens settings.txt ausgelesen welche in diesem Beispiel im Verzeichnis der DLL liegen muss.
Wie man solche Transport-Agents einbindet kannst du hier nachlesen:
Exchange 2007/2010/2013 Transportagenten
01.
namespace Microsoft.Exchange.SMTPAgents.AppendSendername 
02.
03.
    using System; 
04.
    using System.IO; 
05.
    using System.Reflection; 
06.
    using System.Text; 
07.
    using System.Diagnostics; 
08.
    using Microsoft.Exchange.Data.Transport; 
09.
    using Microsoft.Exchange.Data.Transport.Routing; 
10.
 
11.
    public sealed class AppendSendernameFactory : RoutingAgentFactory 
12.
13.
         
14.
        public override RoutingAgent CreateAgent(SmtpServer server) 
15.
16.
            return new AppendSendernameService(server); 
17.
18.
19.
 
20.
    public class AppendSendernameService : RoutingAgent 
21.
22.
        public string STRING_TO_APPEND = ""; 
23.
        private SmtpServer smtp_server; 
24.
        public AppendSendernameService(SmtpServer server) 
25.
26.
            try 
27.
28.
                smtp_server = server; 
29.
                //  Pfad der Einstellungsdatei angeben / per Default liegt diese im selben Verzeichnis wie die Transport-Agent DLL 
30.
                string strPathConfig = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\settings.txt"; 
31.
                if (File.Exists(strPathConfig)) 
32.
33.
                    STRING_TO_APPEND = System.IO.File.ReadAllLines(strPathConfig,System.Text.Encoding.Default)[0]; 
34.
35.
36.
            catch (Exception ex) 
37.
38.
                LogMessage("AppendSenderNameService(Load String from Config)", String.Format("EXCEPTION: Type={0}, Message='{1}'", ex.GetType().FullName, ex.Message)); 
39.
40.
            // Add Queue Event Handler 
41.
            this.OnCategorizedMessage += new CategorizedMessageEventHandler(this.onCategorizedMessageHandler); 
42.
43.
        //onCategorizedMessageHandler Eventhandler 
44.
        public void onCategorizedMessageHandler(CategorizedMessageEventSource source, QueuedMessageEventArgs e) 
45.
46.
             
47.
            try 
48.
49.
                // append text to sender name if mail is send from local domain 
50.
                if (Mail_IsLocalDomain(e.MailItem.FromAddress.DomainPart)) 
51.
52.
                    e.MailItem.Message.From.DisplayName += " " + STRING_TO_APPEND; 
53.
54.
55.
            catch (Exception ex) 
56.
57.
                LogMessage("OnSubmittedMessage", String.Format("EXCEPTION: Type={0}, Message='{1}'", ex.GetType().FullName, ex.Message)); 
58.
59.
 
60.
61.
        public void LogMessage(string methodName, string message) 
62.
63.
            try 
64.
65.
                StringBuilder traceMessage = new StringBuilder(); 
66.
                traceMessage.Append(System.DateTime.Now.ToString("s")); 
67.
                traceMessage.Append("|"); 
68.
                traceMessage.Append(methodName); 
69.
                traceMessage.Append("|"); 
70.
                traceMessage.Append(message); 
71.
                traceMessage.Append("\r\n"); 
72.
 
73.
                Trace.WriteLine(traceMessage.ToString()); 
74.
75.
            catch 
76.
77.
                throw; 
78.
79.
80.
        //Check if mail is in local accepted domains 
81.
        private bool Mail_IsLocalDomain(string domainPart) 
82.
83.
            bool isLocal = false; 
84.
            try 
85.
86.
                if (!string.IsNullOrEmpty(domainPart)) 
87.
88.
                    AcceptedDomainCollection adc = this.smtp_server.AcceptedDomains; 
89.
                    foreach (AcceptedDomain ad in adc) 
90.
91.
                        if (domainPart.Equals(ad.NameSpecification, StringComparison.CurrentCultureIgnoreCase)) 
92.
93.
                            isLocal = true; 
94.
                            break; 
95.
96.
97.
98.
99.
            catch (Exception ex) 
100.
101.
                LogMessage("GetMailLocal", String.Format("EXCEPTION: Type={0}, Message='{1}'", ex.GetType().FullName, ex.Message)); 
102.
103.
            return isLocal; 
104.
105.
 
106.
107.
}
Grüße Uwe
Bitte warten ..
Mitglied: Androxin
20.01.2015 um 20:35 Uhr
Ich bin überwältigt. Damit hätte ich nun nicht gerechnet.

Vielen Dank!
Bitte warten ..
Mitglied: colinardo
LÖSUNG 20.01.2015, aktualisiert um 23:02 Uhr
So damit das hier komplett ist, habe ich noch ein Paket mit kompilierter DLL und Installationsroutine geschnürt:
Das Paket ist für einen Exchange 2010. Anpassung für Exchange 2013 auf Anfrage.
Transport-Agent für Exchange 2010 (zip 5kb)

Der Agent ließt den String aus einer Konfigurationsdatei aus in der man den String nach Bedarf Live anpassen kann.
Weitere Info im ZIP-File.

Viel Spaß
Grüße Uwe
Bitte warten ..
Mitglied: Androxin
20.01.2015 um 23:02 Uhr
Das ist ja der Oberhammer.

Funktioniert auf Anhieb!
Ich bin begeistert! Vielen Dank
Bitte warten ..
Mitglied: Androxin
21.01.2015 um 10:40 Uhr
Doch noch nicht so ganz geil.

Diese Erweiterung wird leider auch bei von extern eingehenden E-Mails angehängt.
Bitte warten ..
Mitglied: colinardo
21.01.2015, aktualisiert um 11:48 Uhr
Zitat von Androxin:

Doch noch nicht so ganz geil.
Diese Erweiterung wird leider auch bei von extern eingehenden E-Mails angehängt.
Fehler ist korrigiert. Es werden jetzt nur Mails ergänzt deren Absenderadresse im Domain-Part eine der AcceptedDomains beinhalten.

Grüße Uwe
Bitte warten ..
Mitglied: Androxin
21.01.2015 um 13:50 Uhr
Vielen Dank schon einmal.

Leider funktioniert das noch nicht so recht. Es verhält sich noch exakt so wie bei deiner ersten Version.
Bitte warten ..
Mitglied: colinardo
21.01.2015, aktualisiert um 13:53 Uhr
Zitat von Androxin:
Leider funktioniert das noch nicht so recht. Es verhält sich noch exakt so wie bei deiner ersten Version.
Geht hier einwandfrei, wie ich geschrieben habe werden nur Mails ergänzt welche als Absenderadresse im Domainteil eine der AcceptedDomains des Exchange beinhalten.
Vermutlich ist bei dir noch die alte Version im Speicher und du hast den Agent nicht richtig entfernt.
Bitte warten ..
Mitglied: Androxin
21.01.2015 um 15:19 Uhr
Hm. Mag sein, dass ich etwas falsch gemacht habe. Ausschließen kann ich das nicht.

Allerdings habe ich im Anschluss an die "deinstallation" durch dein PS Skript mit dem cmdlet "get-transportagent" überprüft, ob es auch wirklich weg ist. Und das war es.
Anschließend erfolgte die Installation mittels deines PS Skriptes. Die Version von 11:26 wurde in das korrekte Verzeichnis kopiert und Get-TransportAgent zeigte es auch wieder an.
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
VB for Applications
gelöst VBA Text mit Format übertragen und Zeichen ergänzen (11)

Frage von Dau12345 zum Thema VB for Applications ...

Batch & Shell
Namen mehrerer Dateien ergänzen per Batchdatei (2)

Frage von adventureman2 zum Thema Batch & Shell ...

Exchange Server
gelöst Nach Namensänderung, alter Anzeigename in der globalen Adressliste (12)

Frage von Leo-le zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...