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 = M4zl8aul7uz4t5y
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 = M4zl8aul7uz4t5y
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: M4zl8aul7uz4t5y
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