В настоящее время у меня есть установка Postfix на моем VPS (CentOS 5.5), которая позволяет отправлять почту SMTP с аутентификацией пользователя через базу данных MySQL. Я использую Dovecot.
Однако никакая программа или сценарий, использующий «почту», не может отправлять электронные письма. Я предполагаю, что это связано с настройками, которые я использую для конфигурации Postfix. Признаюсь, что я новичок в администрировании почтовых серверов, но думаю, что, по крайней мере, на правильном пути. Насколько я могу судить, мне, вероятно, нужно разрешить любому пользователю на локальном хосте отправлять почту, а все остальное требует аутентификации SASL, если это возможно.
Короче говоря, мне нужны локальные системные пользователи, чтобы иметь возможность ретранслировать почту, а внешние пользователи аутентифицируются в базе данных с использованием своего адреса электронной почты и пароля. Как мне настроить это в разрешениях?
Вот раздел разрешений в конфигурации:
# authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_client_restrictions = permit_sasl_authenticated permit_mynetworks
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
# tls config
# smtp_use_tls = yes
# smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.pem
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.pem
smtpd_tls_CAfile = /etc/postfix/ssl/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
# rules restrictions
# smtpd_client_restrictions = reject_rbl_client zen.spamhaus.org
smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_$
smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, re$
smtpd_helo_required = yes
unknown_local_recipient_reject_code = 550
disable_vrfy_command = yes
smtpd_data_restrictions = reject_unauth_pipelining
Убедитесь, что mynetworks включает 127.0.0.1. Возможно, вы захотите переместить allow_mynetworks так, чтобы он был первым во всех ваших настройках smtpd_, чтобы вы никогда не запускали локальную аутентификацию ... Я не уверен, что вам нужно это делать, но это еще кое-что, чтобы попробовать.