Schlagwort-Archive: Outlook Client

Outlook ist primär der Client zum Exchange Server, ein Einsatz ohne Exchange ist aber auch möglich. Erstmals erschien es 1997 im Zusammenhang mit dem Microsoft Server.

Outlook gesendete E-Mail DelegateSentItemsStyle

Outlook gesendete E-Mails sind nicht in „Gesendete Elemente“ des freigegebenen Postfaches

Outlook bietet mehreren Personen Zugriff auf ein freigegebenes Exchange-Postfach, um von dort aus E-Mails zu senden. Die gesendeten E-Mails befinden sich jedoch unter Gesendete Elemente im Postfach des eigenen Benutzers. Dieses Standardverhalten von Outlook macht es für Mitarbeiter schwierig zu verstehen, was von wem auf welche E-Mail geantwortet wurde.

Es gibt keine Möglichkeit, dieses verhalten in den Outlook-Einstellungen zu ändern. Durch das Hinzufügen eines Registrierungsschlüssels kann aber Outlook solche E-Mails immer in das Postfach verschieben, das die E-Mail gesendet hat. Die folgenden Anweisungen gelten für Microsoft Outlook 2007 bis 2019.

So wird’s gemacht

Öffne den Registrierungseditor mit der Tastenkombination Win+R

Dann regedit eingeben und OK klicken, navigiere nun zum folgenden Registrierungsschlüssel:

HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Preferences

Die Zahl 15.0 steht für die Office-Version, die folgenden Werte gelten für die Versionen:

12.0 = 2007
14.0 = 2010
15.0 = 2013
16.0 = 2016
16.0 = 2019
16.0 = Office 365

Erstelle einen neuen DWORT-Schlüssel mit dem Namen DelegateSentItemsStyle, und weise diesem neu erstellten Schlüssel den Wert 1 zu.

Wie man sieht, ist die Versionsnummer bei 16.0 stehen geblieben, es müsste für Outlook 2016 Version 17.0 werden. Dies liegt daran, dass Office 2016 und Office 2019 jetzt dieselbe Codebasis wie Office 365 haben.

Alternativ kann man den folgenden Befehl in einer Eingabeaufforderung als Administrator ausführen.

REG ADD "HKCU\Software\Microsoft\Office\16.0\Outlook\Preferences" /v "DelegateSentItemsStyle" /t REG_DWORD /d "1" /f

Outlook kann nun die versendeten E-Mails in „Gesendete Elemente“ im freigegebenen Postfach speichern.

Hinweis! Outlook muss so konfiguriert sein, dass es im Cache Modus ausgeführt wird, damit diese Option ordnungsgemäß funktioniert.

Das kumulative Update 9 für Exchange Server 2013 hat eine neue Funktion eingeführt, mit der Administratoren die Option zum Kopieren von Nachrichten in den Ordner Gesendete Elemente festlegen können.

Leider gibt es keine einfache Lösung für Öffentliche Ordner. Dazu muss eine Transportrolle auf dem Exchange-Server konfiguriert werden.

Wenn man moch Exchange 2010 weiterhin verwendet, muss man zu den OWA-Optionen für das freigegebene Postfach wechseln, und wählt unter Einstellungen Gesendete Elemente, Absender und „Von“-Postfächer aus.

Outlook wählen Sie unter Einstellungen Gesendete Elemente, Absender und "Von"-Postfächer aus.

Microsoft hat uns auch ein PowerShell-Cmdlet gespendet, bei Exchange 2010 SP2 RU4 ist der Befehl Set-MailboxSentItemsConfiguration verfügbar.

Set-MailboxSentItemsConfiguration "Freigabepostfach" -SendAsItemsCopiedTo SenderAndFrom

Outlook Junk E-Mail auf Smarthost

Niemand mag SPAM, um die Flut unerwünschter E-Mails einzudämmen, müssen eingehende E-Mails mehrere Filter und sogenannte Milter durchlaufen.

Eine effiziente Filter Lösung bietet der Mail Transfer Agent – Postfix, das Open Source Programm wurde 1998 von Wietse Zweitze Venema entwickelt. Postfix ist ein leistungsfähiger Mail Transfer Agent für Unix und Unix-Derivate.

Die Software sollte zum Entwicklungszeitpunkt eine kompatible Alternative zu Sendmail sein. Dabei wurde bei der Entwicklung insbesondere auf Sicherheitsaspekte geachtet. Der Quellcode von Postfix steht unter der IBM Public License. Postfix MTA’s werden von vielen Internet Providern und in Großunternehmen eingesetzt.

Die Architektur von Postfix erlaubt es eine Vielzahl an Filter einzubinden, wie das unter der Apache-Lizenz stehende SpamAssassin, um unerwünschte E-Mails herauszufiltern und zu markieren, oder Greylisting um das verhalten eines Senders zu überprüfen. Zum Schutz gegen Viren und Schadcode kann Clam AntiVirus eingebunden werden – ClamAV steht unter der GNU General Public License.

Workaround

Als E-Mail Client Software in Unternehmen ist MS Outlook im Exchange betrieb weit verbreitet. Für SPAM der nicht in einem Filter abgefangen wurde, bietet Outlook die Möglichkeit unerwünschte Absender zu sperren, hierbei ist die Bezeichnung nicht gerade zutreffend, denn die sogenannten Junk E-Mails werden auf dem Server nicht gesperrt, sondern sie werden beim Empfang viel mehr in den Outlook Ordner Junk-E-Mail verschoben. Besser wäre es aber wenn der vermeintliche Absender es gar nicht schafft es zuzustellen, also es zurückgewiesen wird.

Hier gibt es eine Möglichkeit einzugreifen, wenn der Exchange Server wie oft die E-Mails nicht direkt aus dem Internet empfängt, sondern über einen Smarthost abwickelt. Smarthosts sind meist Linux basierte Server die mit dem Postfix MTA arbeiten.

Abbildung: Junk-E-Mail Optionen: Blockierte Abesnder
Installation

Der folgende PowerShell Script ruft die Junk-E-Mail Einträge aus der Outlook Sperrliste Blockierte Absender von allen Mailboxen aus und extrahiert die formatierte Ausgabe als Windows-ANSI Text und in eine ACSII-Text Datei. Anschliessend wird die erzeugte Datei extracted_JunkEmails.asc auf den Smarthost übertragen. Die Whitelist wird in der Datei extracted-TrustedEmails.asc angelegt.

<#
  JunkEmails.ps1 extract junk email addresses from mailboxes and write to file being distribute to smarthost
  Version 1.0.2 (12.04.2017) by DonMatteo
  Mail: think@unblog.ch
  Blog: think.unblog.ch
#>

$Smarthost = "user@smarthost.mydomain.com:/tmp"
$User_Path = (Get-Item env:\localappdata).Value
$Junk_Path = "$User_Path\Junk"
if(!(Test-Path -Path $Junk_Path )){
    New-Item -ItemType directory -Path $Junk_Path
}
$input_file = "$Junk_Path\JunkEmails.txt"
$output_asc = "$Junk_Path\extracted-JunkEmails.asc"
$output_txt = "$Junk_Path\extracted-JunkEmails.txt"

$trusted_file = "$Junk_Path\TrustedEmails.txt"
$trusted_asc = "$Junk_Path\extracted-TrustedEmails.asc"
$trusted_txt = "$Junk_Path\extracted-TrustedEmails.txt"

$junkmails = (Get-MailboxJunkEmailConfiguration -Identity * | fl BlockedSendersAndDomains)
$junkmails | Out-File -FilePath $output_asc -Encoding ASCII
$junkmails | Out-File -FilePath $input_file

$trusted = (Get-MailboxJunkEmailConfiguration -Identity * | fl TrustedSendersAndDomains)
$trusted | Out-File -FilePath $trusted_asc -Encoding ASCII 
$trusted | Out-File -FilePath $trusted_file

$regex = "\b[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b"
Select-String -Path $input_file -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $output_txt
Select-String -Path $trusted_file -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $trusted_txt

& "C:\Program Files\PuTTY\pscp.exe" "$output_asc" "$trusted_asc" "$Smarthost"

Der Script wird auf dem Exchange Server in der Exchange Management Shell als Administrator ausgeführt, geeigneter Weise als Job in der Aufgabenplanung zu jeder Stunde. Bei Zeile 8 soll anstelle des Platzhalters der Benutzername gefolgt vom Name des Smarthost stehen, dies als FQDN oder host IP.

Auf dem Exchange Server wird PuTTY benötigt, nach der Installation von PuTTY 64bit dient pscp.exe (PuTTY Secure Copy) zur Übertragung der Sperrliste Blockierte Absender auf den Smarthost. Damit es zu keiner Passwort abfrage kommt, muss mit PuTTY Key Generator (puttygen.exe) ein Schlüsselpar erzeugt werden, der erzeugte Public Key wird auf dem Smarthost unter das home Verzeichnis des Benutzers in das Verzeichnis .ssh in die Datei authorized_keys kopiert. Damit ist der Script mit pscp in der lage sich beim Smarthost zu authentifizieren.

Auf dem Linux Smarthost dient ein Shell Script um die Zeilen in das Unix (LF) Format zu konvertieren. Dieser Einzeiler erzeugt die passende Ausgabe in das Postfix Verzeichnis über pipe in die Datei junkbl_access und trusted_access.

# build postfix junk emails lookup tables
cat -v /tmp/extracted-JunkEmails.asc | tr , '\n' | sed 's/[{}]//g;s/[\t ]//g;/^$/d;s/\.\.\.//g;s/\^M$//g;s/BlockedSendersAndDomains://g' | grep . | sort | uniq -u | sed 's/$/\t 550 message was classified as spam/'  > /etc/postfix/junkbl_access
postmap /etc/postfix/junkbl_access
# build postfix trusted emails lookup tables
cat -v /tmp/extracted-TrustedEmails.asc | tr , '\n' | sed 's/[{}]//g;s/[\t ]//g;/^$/d;s/\^M$//g;s/TrustedSendersAndDomains://g' | grep . | sort | uniq -u | sed 's/$/\t ok/' > /etc/postfix/trusted_access
postmap /etc/postfix/trusted_access

Code in eine Datei junkbl.sh einfügen und unter dem Pfad /usr/bin/ speichern.

Der Shell Script wird ausführbar gemacht.

chmod +x /usr/bin/junkbl.sh

Der stream-editor – sed konvertiert die Zeilenumbrüche, entfernt leer Zeichen und fügt am ende jeder Zeile den SMTP Error Code 550 ein, damit werden die beim versuch der Zustellung nicht erwünschten E-Mails der Sperrliste Blockierte Absender zurückgewiesen.

Die Postfix lookup tables erstellen und aktualisieren.

postmap /etc/postfix/junkbl_access
postmap /etc/postfix/trusted_access

In der Postfix Hauptkonfiguration werden die restriction checks hinzugefügt.

vi /etc/postfix/main.cf

smtpd_recipient_restrictions =
        permit_mynetworks,
        check_sender_access hash:/etc/postfix/junkbl_access,
        check_sender_access hash:/etc/postfix/trusted_access,

Nach einem postfix reload wird die Outlook Sperrliste von Postfix angewandt.

Per cronjob soll die Sperrliste laufend aktualisiert werden, zu jeder Stunde +5 min.

5 * * * * root /usr/bin/junkbl.sh >/dev/null 2>&1
Anmerkung

Bei CentOS 7 ist es erforderlich den user zur Group sftp_users hinzuzufügen, mit usermod -G sftp_users {username}, in der sshd_config muss die direktive Match Group sftp_users angewandt werden.

Wie ein Script für die Exchange Management Shell aus der Aufgabenplanung ausgeführt wird, erklärt der Beitrag Exchange MailboxStatistics Mail-Report

OpenSSH Key Bereitstellung für Auto-login PuTTY Key Generator

Eine weitere SSH Lösung bietet OpenSSH on Windows

Release Update und Bugfix auf Github