Virtuelle Benutzer Und Domains Mit Postfix, Courier Und MySQL (Fedora 8) - Seite 5

13 Quota Überschreitungsmeldung

Wenn Du Meldungen bezüglich aller E-Mail-Konten erhalten möchtest, die über Quota sind, dann führe Folgendes aus:

cd /usr/local/sbin/
wget http://puuhis.net/vhcs/quota.txt
mv quota.txt quota_notify
chmod 755 quota_notify

Öffne /usr/local/sbin/quota_notifyuand bearbeite die Variablen am Anfang:

vi /usr/local/sbin/quota_notify


my $POSTFIX_CF = "/etc/postfix/main.cf";
my $MAILPROG = "/usr/sbin/sendmail -t"; my $WARNPERCENT = 80; my @POSTMASTERS = ('postmaster@isp.tld'); my $CONAME = 'ISP.tld'; my $COADDR = 'postmaster@isp.tld'; my $SUADDR = 'postmaster@isp.tld'; my $MAIL_REPORT = 1; my $MAIL_WARNING = 1;
Lass dies laufen

crontab -e

um für dieses Skript einen Cron Job zu erstellen:
0 0 * * * /usr/local/sbin/quota_notify &> /dev/null

14 Postfix testen

Um zu sehen, ob Postfix für SMTP-AUTH und TLS bereit ist, führe Folgendes aus

telnet localhost 25

Nachdem Du die Verbindung zu Deinem Postfix Mail Server eingerichtet hast, gib dies ein

ehlo localhost

Wenn Du die Zeile

250-STARTTLS
und die Zeile

250-AUTH LOGIN PLAIN
siehst, ist alles in bester Ordnung.

[root@server1 sbin]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@server1 sbin]#

Gib ein

quit

um zur Kommandozeile des Systems zurückzukehren.

15 Die Datenbank bestücken Und testen

Um die Datenbank zu bestücken, kannst Du die MySQL Kommandozeile verwenden:

mysql -u root -p
USE mail;

Du musst wenigstens Einträge in den Tabellen domains und users erstellen:

INSERT INTO `domains` (`domain`) VALUES ('example.com');
INSERT INTO `users` (`email`, `password`, `quota`) VALUES ('sales@example.com', ENCRYPT('secret'), 10485760);

(Bitte pass auf, dass Du den ENCRYPT Syntax im zweiten INSERT Statement verwendest, um das Passwort zu verschlüsseln!)

Wenn Du Einträge in den anderen zwei Tabellen vornehmen möchtest, würde dies so aussehen:

INSERT INTO `forwardings` (`source`, `destination`) VALUES ('info@example.com', 'sales@example.com');
INSERT INTO `transport` (`domain`, `transport`) VALUES ('example.com', 'smtp:mail.example.com');

Um die MySQL Kommandozeile zu verlassen, gib ein

quit;

Für die Meisten ist es einfacher wenn sie ein grafisches Front-End zu MySQL haben; daher kannst Du auch phpMyAdmin (in diesem Beispiel unter http://192.168.0.100/phpMyAdmin/ oder http://server1.example.com/phpMyAdmin/) verwenden, um die mail Datenbank zu verwalten. Nochmal, wenn Du einen Benutzer einrichtest, vergewissere Dich, dass Du die ENCRYPT Ffunktion zum Verschlüsseln des Passwortes verwendest:


Ich denke nicht, dass ich die domainsuand users Tabelle weiter erklären muss.

Die forwardings Tabelle kann Einträge wie den Folgenden haben:
source destination  
info@example.com sales@example.com Redirects emails for info@example.com to sales@example.com
@example.com thomas@example.com Creates a Catch-All account for thomas@example.com. All emails to example.com will arrive at thomas@example.com, except those that exist in the users table (i.e., if sales@example.com exists in the users table, mails to sales@example.com will still arrive at sales@example.com).
@example.com @anotherdomain.tld This redirects all emails to example.com to the same user at anotherdomain.tld. E.g., emails to thomas@example.com will be forwarded to thomas@anotherdomain.tld.
info@example.com sales@example.com, billing@anotherdomain.tld Forward emails for info@example.com to two or more email addresses. All listed email addresses under destination receive a copy of the email.Die transport Tabelle kann Einträge wie folgt haben:
domain transport  
example.com : Delivers emails for example.com locally. This is as if this record would not exist in this table at all.
example.com smtp:mail.anotherdomain.tld Delivers all emails for example.com via smtp to the server mail.anotherdomain.com.
example.com smtp:mail.anotherdomain.tld:2025 Delivers all emails for example.com via smtp to the server mail.anotherdomain.com, but on port 2025, not 25 which is the default port for smtp.
example.com smtp:[1.2.3.4]
smtp:[1.2.3.4]:2025
smtp:[mail.anotherdomain.tld]
The square brackets prevent Postfix from doing lookups of the MX DNS record for the address in square brackets. Makes sense for IP addresses.
.example.com smtp:mail.anotherdomain.tld Mail for any subdomain of example.com is delivered to mail.anotherdomain.tld.
* smtp:mail.anotherdomain.tld All emails are delivered to mail.anotherdomain.tld.
joe@example.com smtp:mail.anotherdomain.tld Emails for joe@example.com are delivered to mail.anotherdomain.tld.Siehe

man transport

für mehr Informationen.

Bitte denke daran, dass die Anordnung der Einträge in der transport Tabelle wichtig ist! Die Einträge schließen sich von oben bis unten an.

Wichtig: Postfix verwendet einen Caching Mechanism für den Transport, daher kann es eine Weile dauern, bis Deine Änderungen in der transport Tabelle übernommen werden. Wenn Du möchtest, dass sie sofort übernommen werden, lass Folgendes laufen

postfix reload

nachdem Du Deine Änderungen in der transport Tabelle vorgenommen hast.

16 Referenzen

Tutorial: ISP-style Email Service with Debian-Sarge and Postfix 2.1: http://workaround.org/articles/ispmail-sarge/
Postfix + Quota: http://vhcs.net/new/modules/newbb/viewtopic.php?topic_id=3496&forum=17
Mail Passwords Encrypted using saslauthd: http://www.syscp.de/docs/public/contrib/cryptedmailpws

17 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte