nemiah.de

Fetchmail hinzufügen

aptitude install fetchmail

Tabelle anlegen

Die passende Datenbank-Tabelle wird mit openMM mitgeliefert und mit dem Installation-Plugin eingerichtet.

cronJob

Damit Fetchmail alle zwei Minuten die E-Mails vom entfernten Server abholt, muss noch ein cronJob eingerichtet werden:

*/2 * * * * /usr/bin/fetchmail > /dev/null 2>&1

postfix MySQL Blacklist

Tabelle anlegen

Die entsprechende Datenbank-Tabelle wird mit openMM ausgeliefert und mit dem Installation-Plugin eingerichtet.

postfix konfigurieren

echo "user = openmm
password = Enve2eqgmm1slzd
hosts = 127.0.0.1
dbname = openmm

query = SELECT VBlacklistAction FROM VBlacklist WHERE VBlacklistSender='%s' OR VBlacklistSender=SUBSTR('%s', INSTR('%s', '@'))" > /etc/postfix/mysql-restricted_senders.cf

Fügen Sie der Einstellung smtpd_recipient_restrictions in der Datei /etc/postfix/main.cf folgenden Wert hinzu:

check_sender_access mysql:/etc/postfix/mysql-restricted_senders.cf

So testen Sie die Funktion:

postmap -q "test@test.de" mysql:/etc/postfix/mysql-restricted_senders.cf

Starten Sie postfix neu:

postfix reload

Sieve aktivieren

Zunächst bearbeiten Sie den Abschnitt protocol lmtp {} der Datei /etc/dovecot/conf.d/20-lmtp.conf

mail_plugins = $mail_plugins sieve

Im Abschnitt plugin {} der Datei /etc/dovecot/conf.d/90-sieve.conf müssen folgende Anpassungen vorgenommen werden:

sieve=/var/mail/%d/%n/.dovecot.sieve

Für ein globales Sieve-Script tragen Sie ein:

sieve_default = /var/lib/dovecot/sieve/default.sieve

Erzeugen Sie anschließend die Datei mit zum Beispiel folgendem Inhalt:

require ["fileinto", "mailbox"];
# Move spam to spam folder
if header :contains "X-Spam-Flag" ["YES"] {
fileinto:create "Spam";
stop;
} else {
fileinto:create "Archiv.Eingang";
fileinto "INBOX";
}

Gefolgt von

sievec /var/lib/dovecot/sieve/default.sieve
chown vmail:vmail /var/lib/dovecot/sieve/default.sieve
chmod u=rwx,g=rx,o=rx /var/lib/dovecot

Dovecot ACL

Um generell Dovecot ACL zu aktivieren, gehen Sie bitte vor, wie im offiziellen wiki beschrieben: wiki2.dovecot.org/ACL

Aktivieren Sie zunachst das Plugin in der Datei /etc/dovecot/conf.d/10-mail.conf

mail_plugins = acl sieve

openMM verwendet das Verzeichnis /etc/dovecot/dovecot-acls, um die globalen ACLs anzulegen. Tragen Sie daher in der Datei /etc/dovecot/conf.d/90-acl.conf folgendes ein:

acl = vfile:/etc/dovecot/dovecot-acls:cache_secs=300

Legen Sie nun noch das Verzeichnis an:

mkdir /etc/dovecot/dovecot-acls
chown vmail:dovecot /etc/dovecot/dovecot-acls
chmod u=rwx,g=rx,o=rx /etc/dovecot
chmod u=rwx,g=rx,o=rx /etc/dovecot/dovecot-acls

Transport einrichten

postfix konfigurieren

echo "user = openmm
password = Enve2eqgmm1slzd
hosts = 127.0.0.1
dbname = openmm

query = SELECT CONCAT('smtp:[', VTransportTargetDomain, ']:', VTransportTargetPort) FROM VTransport WHERE VTransportDomain='%s'" > /etc/postfix/mysql-virtual-transport.cf

Konfigurieren Sie anschließend postfix:

postconf -e transport_maps=mysql:/etc/postfix/mysql-virtual-transport.cf

Starten Sie postfix neu:

postfix reload

MailPHP

mit MailPHP lassen sich eingehende E-Mails von postfix direkt an lightCRM weiterleiten. Ein dazwischen geschalteter Mailserver wie dovecot ist damit nicht mehr notwendig.

Mit Filterregeln werden die E-Mails unterschiedlichen Zielen zugeordnet. So ist es zum Beispiel möglich, eine E-Mail sowohl im lightCRM abzulegen als auch eine Kopie zur Sicherung an den Mailserver zu schicken.

Die möglichen Filterregeln sind:

  • test@test.de - Gilt genau für diese Adresse
  • *@test.de - Gilt für alle @test.de-Adressen
  • * - Gilt für alle Adressen
  • always - Wird immer ausgeführt
  • alwaysOnce - Wird immer ausgeführt. Die E-Mail wird aber nur einmal an das gleiche Ziel zugestellt.

Als Ziel kann neben lightCRM auch eine andere Anwendung dienen, die die E-Mail per HTTP-Post entgegennimmt. Ein Beispielscript sieht wie folgt aus:

$message = file_get_contents("php://input");
$toAddress = $_GET["recipient"];
$fromAddress = $_GET["sender"];

Logs

Das deliver.php-Script loggt nach /var/log/mail.log

postfix konfigurieren

nano /etc/postfix/master.cf

openmm     unix  -       n       n       -       -       pipe
flags=DRhu user=vmail:vmail argv=/var/www/openMM/openMM/MailPHP/deliver.php ${sender} ${recipient}

Konfigurieren Sie anschließend postfix:

postconf -e virtual_transport=openmm

Starten Sie postfix neu:

postfix reload

openMM

Sie können jetzt die Filter im openMM verwalten. Empfohlen wird, immer eine Filterregel mit "*" zu erstellen, um alle E-Mails zuzustellen.

SASL ohe Dovecot

Dieser Artikel beschreibt die Einrichtung einer Benutzer-Authentifizierung ohne Dovecot aber mit der openMM-Datenbank.

Benötigte Pakete installieren:

aptitude install libsasl2-modules-sql

postfix konfigurieren

echo "pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: PLAIN LOGIN

log_level: 5
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: openmm
sql_passwd: Enve2eqgmm1slzd
sql_database: openmm
sql_select: SELECT VUserPassword FROM VUser WHERE VUserName = '%u@%r'" > /etc/postfix/sasl/smtpd.conf

Konfigurieren Sie anschließend postfix:

postconf -e smtpd_sasl_auth_enable=yes
postconf -e smtpd_sasl_security_options=noanonymous
postconf -e broken_sasl_auth_clients=yes
postconf -e smtpd_sasl_authenticated_header=yes

Starten Sie postfix neu:

postfix reload