У нас есть в наличии (Debian Squeeze)
Postfix+Postfix admin+courier-imap+courier pop3 + mysql
Postfix принимает smtp для пересылки во внеху только от доверенных сетей, в данном случае такая пересылка происходит только от скриптов сайта, так что разрешение стоит только на локалхост
[/etc/postfix/main.cf]
mynetworks = 127.0.0.0
Со внехи письма приходят только для тех доменов, которые обслуживаются этим почтовиком (далее эти письма юзера забирают через pop3 или imap).
Но появляется задача - отправлять из внешних сетей через наш почтовик во внешние сети (при использовании почтовых клиентов), естественно такую операцию можно разрешить только с авторизацией.
[/etc/postfix/main.cf]
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = cyrus
smtpd_sasl_enable=yes
smtpd_sasl_path = smtpd
broken_sasl_auth_clients = yes
Ставим пакеты
apt-get install sasl2-bin libsasl2-modules-sql libsasl2-modules
Теперь правим файлик (можете закоментировать там все и вставить это)
[/etc/default/saslauthd ]
Мы уже настроили postfixadmin и он создал необходимые таблицы в mysql
теперь создаем и редактируем файл
[/etc/postfix/sasl/smtpd.conf]
pwcheck_method: auxprop
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: userpostfix
sql_passwd: 123456789
sql_database: postfixdb
sql_select: select clear from mailbox where username = '%u@%r' and active = '1'
log_level: 2
mech_list: PLAIN LOGIN
(понимания зашифрованных паролей я добиться не смог, выход - создать в таблице поле clear и запись в него незашифрованного пароля для доступа с SMTP, в таком случае лучше использовать отличный пароль, чтоб при его перехвате злоумышленник не смог читать ваши письма а только лишь смог заниматься пересылкой почты)
Далее делаем кое какие штришки
mkdir -p /var/spool/postfix/var/run/mysqld
chown mysql /var/spool/postfix/var/run/mysqld
ln /var/run/mysqld/mysqld.sock /var/spool/postfix/var/run/mysqld/mysqld.sock
Если захотите осилить этот материал более подробно то
Postfix+Postfix admin+courier-imap+courier pop3 + mysql
Postfix принимает smtp для пересылки во внеху только от доверенных сетей, в данном случае такая пересылка происходит только от скриптов сайта, так что разрешение стоит только на локалхост
[/etc/postfix/main.cf]
mynetworks = 127.0.0.0
Со внехи письма приходят только для тех доменов, которые обслуживаются этим почтовиком (далее эти письма юзера забирают через pop3 или imap).
Но появляется задача - отправлять из внешних сетей через наш почтовик во внешние сети (при использовании почтовых клиентов), естественно такую операцию можно разрешить только с авторизацией.
[/etc/postfix/main.cf]
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = cyrus
smtpd_sasl_enable=yes
smtpd_sasl_path = smtpd
broken_sasl_auth_clients = yes
Ставим пакеты
apt-get install sasl2-bin libsasl2-modules-sql libsasl2-modules
Теперь правим файлик (можете закоментировать там все и вставить это)
[/etc/default/saslauthd ]
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="rimap"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-r -c -O localhost -m /var/spool/postfix/var/run/saslauthd"
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="rimap"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-r -c -O localhost -m /var/spool/postfix/var/run/saslauthd"
Мы уже настроили postfixadmin и он создал необходимые таблицы в mysql
теперь создаем и редактируем файл
[/etc/postfix/sasl/smtpd.conf]
pwcheck_method: auxprop
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: userpostfix
sql_passwd: 123456789
sql_database: postfixdb
sql_select: select clear from mailbox where username = '%u@%r' and active = '1'
log_level: 2
mech_list: PLAIN LOGIN
(понимания зашифрованных паролей я добиться не смог, выход - создать в таблице поле clear и запись в него незашифрованного пароля для доступа с SMTP, в таком случае лучше использовать отличный пароль, чтоб при его перехвате злоумышленник не смог читать ваши письма а только лишь смог заниматься пересылкой почты)
Далее делаем кое какие штришки
mkdir -p /var/spool/postfix/var/run/mysqld
chown mysql /var/spool/postfix/var/run/mysqld
ln /var/run/mysqld/mysqld.sock /var/spool/postfix/var/run/mysqld/mysqld.sock
Если захотите осилить этот материал более подробно то
- http://www.postfix.org/SASL_README.html
- http://dotclear.placeoweb.com/post/Debian-Postfix-MySQL-SASL-PostfixAdmin-Courier-VirtualDomain-Serveur-mail-SMTP-IMAP-POP
- http://codepoets.co.uk/2009/postfixadmin-setupinstall-guide-for-virtual-mail-users-on-postfix/