Anzeigename autom. um Suffix ergänzen
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 260460
Url: https://administrator.de/forum/anzeigename-autom-um-suffix-ergaenzen-260460.html
Ausgedruckt am: 26.12.2024 um 13:12 Uhr
14 Kommentare
Neuester Kommentar
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
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
http://www.egress.com/transport-agent/
Hier auch ein Ansatz wie man einen Transport-Agent selber schreiben kann (Programmiererfahrung vorausgesetzt):
Automatische Regel innerhalb eines Öffentlichen Ordners
Grüße Uwe
Hier auch ein Ansatz wie man einen Transport-Agent selber schreiben kann (Programmiererfahrung vorausgesetzt):
Automatische Regel innerhalb eines Öffentlichen Ordners
Grüße Uwe
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
Grüße Uwe
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
namespace Microsoft.Exchange.SMTPAgents.AppendSendername
{
using System;
using System.IO;
using System.Reflection;
using System.Text;
using System.Diagnostics;
using Microsoft.Exchange.Data.Transport;
using Microsoft.Exchange.Data.Transport.Routing;
public sealed class AppendSendernameFactory : RoutingAgentFactory
{
public override RoutingAgent CreateAgent(SmtpServer server)
{
return new AppendSendernameService(server);
}
}
public class AppendSendernameService : RoutingAgent
{
public string STRING_TO_APPEND = "";
private SmtpServer smtp_server;
public AppendSendernameService(SmtpServer server)
{
try
{
smtp_server = server;
// Pfad der Einstellungsdatei angeben / per Default liegt diese im selben Verzeichnis wie die Transport-Agent DLL
string strPathConfig = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\settings.txt";
if (File.Exists(strPathConfig))
{
STRING_TO_APPEND = System.IO.File.ReadAllLines(strPathConfig,System.Text.Encoding.Default);
}
}
catch (Exception ex)
{
LogMessage("AppendSenderNameService(Load String from Config)", String.Format("EXCEPTION: Type={0}, Message='{1}'", ex.GetType().FullName, ex.Message));
}
// Add Queue Event Handler
this.OnCategorizedMessage += new CategorizedMessageEventHandler(this.onCategorizedMessageHandler);
}
//onCategorizedMessageHandler Eventhandler
public void onCategorizedMessageHandler(CategorizedMessageEventSource source, QueuedMessageEventArgs e)
{
try
{
// append text to sender name if mail is send from local domain
if (Mail_IsLocalDomain(e.MailItem.FromAddress.DomainPart))
{
e.MailItem.Message.From.DisplayName += " " + STRING_TO_APPEND;
}
}
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;
}
}
//Check if mail is in local accepted domains
private bool Mail_IsLocalDomain(string domainPart)
{
bool isLocal = false;
try
{
if (!string.IsNullOrEmpty(domainPart))
{
AcceptedDomainCollection adc = this.smtp_server.AcceptedDomains;
foreach (AcceptedDomain ad in adc)
{
if (domainPart.Equals(ad.NameSpecification, StringComparison.CurrentCultureIgnoreCase))
{
isLocal = true;
break;
}
}
}
}
catch (Exception ex)
{
LogMessage("GetMailLocal", String.Format("EXCEPTION: Type={0}, Message='{1}'", ex.GetType().FullName, ex.Message));
}
return isLocal;
}
}
}
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
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
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.Doch noch nicht so ganz geil.
Diese Erweiterung wird leider auch bei von extern eingehenden E-Mails angehängt.
Grüße Uwe
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.Leider funktioniert das noch nicht so recht. Es verhält sich noch exakt so wie bei deiner ersten Version.
Vermutlich ist bei dir noch die alte Version im Speicher und du hast den Agent nicht richtig entfernt.