Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[Gelöst]Outlook Signatur nach Empfänger ändern
Tweak90
myCSharp.de - Member



Dabei seit:
Beiträge: 25
Herkunft: NDS

Themenstarter:

[Gelöst]Outlook Signatur nach Empfänger ändern

beantworten | zitieren | melden

Guten Tag,
ich wollte mal fragen ob es möglich ist beim Erstellen einer Email zu schauen wer der Empfänger ist und dann entsprechend dem Empfänger die Signatur zu ändern.

Folgendes Scenario liegt vor:
Innerhalb unseres Betriebes haben wir einheitliche Signaturen, welche beim Kontakt mit Kunden natürlich übermittelt werden sollten. Bei hausinternen Mails sollen diese aber nicht mitgesendet werden.

Dies dient zum einen der Übersichtlichkeit, zum anderen werden Mails oft auch einfach ausgedruckt und dabei kostet die Signatur schon ne halbe Seite.

Vorstellen würde ich mir das wie folgt:
Beim Verlassen der CC oder Empfänger box wird geprüft welche EMails eingetragen sind,
für jede EMail wird dann geprüft:
Hat die EMail die Endung @firmenname.de
oder:
Hat die Adresse den genauen Wortlaut, z.B.: [email protected]
dafür könnte man ja im ribbon ne einstellung hinterlegen wo man mail endungen oder genaue Mailadressen hinterlegen kann. (Theoretisch nur eine Liste wp immer EndsWith abgefragt wird... tuts dann ja auch für den ganzen Wortlaut ;))

Sollte eine oder mehr als eine EMail Adresse nicht auf den Filter zutreffen, so werden alle Empfänger die EMail mit Signatur erhalten, ansonsten ohne.

Vielleicht gibt es da ja schon was, jemand hat schonmal was ähnliches gemacht oder jemand kann mir einfach bestätigen, dass es geht oder mir sagen warum nicht.

Auf ein AddIn für Outlook und auf Outlook selbst sind wir angewiesen, weil schon andere Firmeninterne AddIns genutzt werden.

Liebe Grüße und Danke im Vorraus
Tweak90
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Tweak90 am .
private Nachricht | Beiträge des Benutzers
Grumbler85
myCSharp.de - Member



Dabei seit:
Beiträge: 550
Herkunft: Rheingau Taunus

beantworten | zitieren | melden

Ja es ist möglich eine Email vor dem Senden zu verändern (was wohl grob deine Frage war):

Siehe hier: How To: Make changes to an Outlook message before sending
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Grumbler85 am .
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
private Nachricht | Beiträge des Benutzers
Tweak90
myCSharp.de - Member



Dabei seit:
Beiträge: 25
Herkunft: NDS

Themenstarter:

beantworten | zitieren | melden

Jao danke, das funktioniert schonmal ganz gut,
für Interessenten hier der Quelltext:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Outlook;

namespace signatureHandler
{
public partial class ThisAddIn
{
Properties.Settings userData = null;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Application.ItemSend += new
Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
LoadConfigSettings();
}

private void LoadConfigSettings()
{
userData = new Properties.Settings();
sigHandlerCfg.Current.mailending = userData.mailending;
sigHandlerCfg.Current.signature = userData.signature;
}

private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}

void Application_ItemSend(object Item, ref bool Cancel)
{
bool shouldAddSignature = false;
Outlook.Recipient recipient = null;
Outlook.Recipients recipients = null;
Outlook.MailItem mail = Item as Outlook.MailItem;
if (mail != null)
{
string mailAdressToCheck;
try
{
foreach (Outlook.Recipient rec in mail.Recipients)
{
if (rec.AddressEntry.AddressEntryUserType == OlAddressEntryUserType.olExchangeUserAddressEntry)
mailAdressToCheck = rec.AddressEntry.GetExchangeUser().PrimarySmtpAddress;
else
mailAdressToCheck = rec.Address;

if (!mailAdressToCheck.EndsWith(userData.mailending))
{
shouldAddSignature = true;
}
}
}
catch
{
shouldAddSignature = true;
}
if (shouldAddSignature)
{
string addToBody = userData.signature;
if (!mail.Body.EndsWith(addToBody))
mail.Body += addToBody;
}
recipients = mail.Recipients;
if (recipient != null) Marshal.ReleaseComObject(recipient);
if (recipients != null) Marshal.ReleaseComObject(recipients);
}
}

#region VSTO generated code

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}

#endregion
}
}


In den properties 2 Strings hinterlegt für mailending und signature
das config window hat net richtextbox und ne textbox, dazu 2 buttons:

hier der text:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace signatureHandler
{
public partial class sigHelperConfig : Form
{
Properties.Settings userData = null;

public sigHelperConfig()
{
InitializeComponent();
userData = new Properties.Settings();
LoadConfigSettings();
rtbSignature.Text = userData.signature;
tbMailEnding.Text = userData.mailending;
}

private void LoadConfigSettings()
{
userData = new Properties.Settings();
sigHandlerCfg.Current.mailending = userData.mailending;
sigHandlerCfg.Current.signature = userData.signature;
}

private void btnSave_Click(object sender, EventArgs e)
{
userData.mailending = tbMailEnding.Text;
userData.signature = rtbSignature.Text; ;
userData.Save();
this.DialogResult = DialogResult.OK;
this.Close();
}

private void btnAbort_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Abort;
this.Close();
}
}
}

zuletzt das ribbon mit nem button für die einstellungen:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Tools.Ribbon;

namespace signatureHandler
{
public partial class signatureHandler
{
private void signatureHandler_Load(object sender, RibbonUIEventArgs e)
{

}

private void btnConfig_Click(object sender, RibbonControlEventArgs e)
{
sigHelperConfig config = new sigHelperConfig();
config.ShowDialog();
}
}
}

die sigConfig:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;

namespace signatureHandler
{

class sigHandlerCfg
{


private static sigHandlerCfg fCurrent;
public static sigHandlerCfg Current
{
get
{
if (fCurrent == null)
fCurrent = new sigHandlerCfg();
return fCurrent;
}
}
private sigHandlerCfg()
{
}

public string mailending
{
get;
set;
}
public string signature
{
get;
set;
}
}
}

jetzt muss nur die richtextbox in der die Signatur drin ist weg und dafür ein Auswahldialog für die bereits hinterlegten Signaturen von Outlook (standard usw...).

Dazu sollte die Signatur nicht an die Email an gehangen werden sondern schon im Editor sichtbar sein und im Falle des Falles gelöscht werden.

Auch sollte die Signatur als signatur element und nicht als Plaintext drin stehen, damit diese auch sauber erkannt wird, nicht das am ende auf grund einer kleinen änderung von hand ne doppelte signatur hinzukommt... aber das sind alles nur Spielereien die ich nachträglich hinzufüge.

Danke auf jeden Fall für die Antwort, wenn das Projekt abgeschlossen und brauchbar ist lade ich es hier hoch für mögliche Interessenten :)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Tweak90 am .
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5983
Herkunft: Leipzig

beantworten | zitieren | melden

Gelößt oder gelöst?
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers