Kapitel 7:
==========
Greylisting des Postfix-Servers wird abgeschaltet, indem Sie in der Datei
/etc/postfix/main.cf die Zeile
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination check_policy_service unix:private/policy permit
durch die Zeile
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination permit
ersetzen.
Wenn Sie Outlook-Clients verwenden wollen, Àndern Sie in der Datei
/etc/postfix/main.cf bitte die Zeile
smtpd_helo_restrictions = reject_invalid_helo_hostname reject_non_fqdn_helo_hostname
in
smtpd_helo_restrictions = permit_sasl_authenticated permit_mynetworks reject_invalid_helo_hostname reject_non_fqdn_helo_hostname
Damit der iCal-Server Ereignis-Annahmen von Benutzern verarbeiten kann, die er
zuvor per E-Mail eingeladen hat, muss der Mailserver EmpfÀngernamen herausfiltern
können, die vor einem "+"-Zeichn in der Mail-Adresse stehen.
Stellen Sie daher sicher, dass in der Datei /etc/postfix/main.cf die Zeile
recipient_delimiter = +
zu finden ist.
Damit Ihr Server auch E-Mails mit leerer Betreffzeile annimmt, Àndern Sie
bitte in der Datei /etc/postfix/main.cf die Zeile
header_checks = pcre:/etc/postfix/custom_header_checks
in
# header_checks = pcre:/etc/postfix/custom_header_checks
Der Inhalt der Datei .fetchmailrc sieht im Buch so aus:
set postmaster ""
set bouncemail
set no spambounce
set no softbounce
poll pop3.strato.de with proto POP3 localdomains loophole-solutions.tv
envelope X-Envelope-To
user info@loophole-solutions.tv with pass xyz is apple1 here
user ical@loophole-solutions.tv with pass xyz to * here
Die Datei /Library/LaunchDaemons/de.andre-aulich.fetchmail.plist ruft fetchmail im Buch unter
dem Pfad /opt/local/bin/fetchmail auf, welches zuvor mittels MacPorts installiert wurde.
Unter Mac OS X Server 10.6 ist fetchmail jedoch bereits unter /usr/bin/fetchmail
vorinstalliert, so dass unser Skript zum regelmÀ�igen Aufruf von fetchmail so aussehen sollte:
Label
de.andre-aulich.fetchmail
ProgramArguments
/usr/bin/fetchmail
-d
60
-L
/var/log/fetchmail.log
UserName
sadmin
RunAtLoad
Der zu ergÀnzende Text in der Datei /etc/dovecot/dovecot.conf lautet:
namespace private {
separator = /
prefix =
inbox = yes
}
namespace public {
separator = /
prefix = Public/
location = maildir:/var/spool/imap/dovecot/mail/Public
hidden = no
list = yes
subscriptions = yes
}
Das Skript /usr/local/bin/learnjunk lautet:
#!/bin/bash
#
#######################################################################
# #
# This script trains spamassassin on servers set up according to #
# the O'Reilly book about 10.6 collaboration servers by Andre Aulich, #
# www.andre-aulich.de. #
# #
# After learning from a mail, this script deletes the mail... #
# #
# This script is based on Apple's learn_junk_mail file, which #
# can be found at /etc/mail/spamassassin/learn_junk_mail on your #
# 10.6 server installation. #
# #
#######################################################################
JUNK_MAIL_PATH="/var/spool/imap/dovecot/mail/Public/.Junk"
NOT_JUNK_MAIL_PATH="/var/spool/imap/dovecot/mail/Public/.NotJunk"
SA_LEARN_PATH="/usr/bin/sa-learn"
DB_PATH=/var/amavis/.spamassassin
if [ -d "$JUNK_MAIL_PATH" ]
then
echo "Reading mailbox Junk"
find "$JUNK_MAIL_PATH/cur" "$JUNK_MAIL_PATH/new" -type f -print | while read file
do
sudo -u _amavisd $SA_LEARN_PATH --dbpath $DB_PATH --spam --no-sync < "$file" > /dev/null
rm "$file"
done
else
echo "Please create the Junk mailbox."
fi
if [ -d "$NOT_JUNK_MAIL_PATH" ]
then
echo "Reading mailbox NotJunk"
find "$NOT_JUNK_MAIL_PATH/cur" "$NOT_JUNK_MAIL_PATH/new" -type f -print | while read file
do
sudo -u _amavisd $SA_LEARN_PATH --dbpath $DB_PATH --ham --no-sync < "$file" > /dev/null
rm "$file"
done
else
echo "Please create the NotJunk mailbox."
fi
# Force a database sync
sudo -u _amavisd $SA_LEARN_PATH --dbpath $DB_PATH --sync > /dev/null
Der launchd-Job /Library/LaunchDaemons/de.andre-aulich.learnjunk.plist
zum Aufruf des des Skripts /usr/local/bin/learnjunk lautet:
Label
de.andre-aulich.learnjunk
ProgramArguments
/usr/local/bin/learnjunk
StartInterval
600
RunAtLoad
Der launchd-Job zum regelmÀ�igen Aufrufen von mailbfr unter
/Library/LaunchDaemons/mailbackup.plist lautet:
Label
mailbackup
ProgramArguments
/usr/sbin/mailbfr
-b
/Volumes/MailBackup
--mode rotate
StartCalendarInterval
Hour
2
Minute
30