Postfix не отправляет / не позволяет получать сообщения после изменения сервера (аппаратного обеспечения)
У нас был старый ноутбук под управлением Ubuntu 12.04, работающий как веб / ftp / mail сервер, и он работал, но, поскольку ноутбук был ноутбуком и довольно старым и ненадежным, для его замены был куплен рабочий стол, прежде чем он перестал работать вместе.
Из-за проблем с видеокартой нового рабочего стола мы не смогли использовать Ubuntu 12.04, поэтому мы установили Ubuntu 13.10 и не собирались его настраивать.
Так как мы удалили ноутбук из сети, мы сохранили то же имя компьютера и локальный IP-адрес, чтобы максимально приблизить его к старому серверу с точки зрения конфигурации.
Тем не менее, что-то пошло не так, поскольку Postfix выдает ошибку 451 4.3.0. Ошибка при поиске при каждой попытке отправить письмо, и электронное письмо также не может быть получено.
Наш файл main.cf является копией того, который мы использовали (и работали) на старом сервере (обратите внимание, мы используем EHCP)
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name powered by Easy Hosting Control Panel (ehcp) on Ubuntu, www.ehcp.net
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
myhostname = m21-traducoes.com.pt
relayhost =
mydestination = localhost, 89.152.248.139
mynetworks = 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/16, 10.0.0.0/8, 89.152.248.0/24
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, proxy:mysql:/etc/postfix/mysql-virtual_email2email.cf
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,check_client_access hash:/var/lib/pop-before-smtp/hosts,reject_unauth_destination
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = no
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "The user you are trying to reach is over quota."
virtual_overquota_bounce = yes
debug_peer_list =
sender_canonical_maps =
debug_peer_level = 1
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $mynetworks $virtual_mailbox_limit_maps $transport_maps
alias_maps = hash:/etc/aliases
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated,check_client_access hash:/var/lib/pop-before-smtp/hosts,reject_unauth_destination
smtpd_destination_concurrency_limit = 2
smtpd_destination_rate_delay = 1s
smtpd_extra_recipient_limit = 10
disable_vrfy_command = yes
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_error_sleep_time = 1s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
Эта конфигурация работала раньше, но теперь каждый раз, когда я пытаюсь отправить письмо в squirrelmail, оно сообщает:
Message not sent. Server replied:
Requested action aborted: error in processing
451 4.3.0 <someone@domain.ext>: Temporary lookup failure
И я не могу отправлять почту от посторонних тоже. Есть идеи?
РЕДАКТИРОВАТЬ: Вот некоторые проблемы MXToolBox сообщает на мой домен, с надеждой ответить @Teun Vink:
BlackList Mail Server Web Server DNS
Error 4 0 2 0
Warnings 0 0 0 3
Passed 0 6 3 12
Таким образом, домен находится в каком-то черном списке, но это совсем не объясняет ошибку. Не найдено проблем с почтовым сервером (за исключением того, что он не работает). Эти две ошибки веб-сервера вызваны тем, что у меня не работает HTTPS (без SSL-сертификата), поэтому Тест не пройден Эти 3 предупреждения DNS, которые мы уже были там, когда он работал с другой машиной, связаны с тем, что я не могу контролировать:
SOA Refresh Value is outside of the recommended range
SOA Expire Value out of recommended range
SOA NXDOMAIN Value too high
Я искал и, насколько я могу судить, только парни, которые продали розничную торговлю, могут изменить эти значения, и они не будут.
Edit2: я наполовину решил проблему. На новой машине postfix был установлен, но postfix-mysql не был, поэтому он не мог подключиться к базе данных (ошибка новичка). После исправления этого я теперь могу отправлять почту постороннему без каких-либо проблем, однако я все еще не могу получать почту из-за границы. Отправитель не получает никакого сообщения с предупреждением о недоставке, но сообщение не попадает в папку "Входящие" и журнал показывает:
Nov 13 15:11:57 m21-traducoes postfix/smtpd[5872]: NOQUEUE: reject: RCPT from re
lay4.ptmail.sapo.pt[212.55.154.24]: 451 4.3.5 <relay4.ptmail.sapo.pt[212.55.154.
24]>: Client host rejected: Server configuration error; from=<as1114144@sapo.pt>
to=<admin@m21-traducoes.com.pt> proto=SMTP helo=<sapo.pt>
Nov 13 15:11:57 m21-traducoes postfix/smtpd[5872]: disconnect from relay4.ptmail
.sapo.pt[212.55.154.24]
Edit3: удаление параметра smtpd_relay_restrictions из main.cf позволяет мне получать почту от постороннего - но (я думаю) также делает меня открытым реле - что нет-нет. Идеи?
2 ответа
Ну, это было странно, но я наконец понял это и исправил это в два шага:
1 - проверка mail.log (я должен был начать там), я заметил, что postfix не удалось достичь базы данных mysql. Небольшое исследование, и я понял, что postfix был установлен, а postfix-mysql - нет. Поэтому я просто переустановил весь почтовый пакет, используя:
sudo apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql libpam-smbpass
Это сделало так, чтобы я наконец смог отправить почту извне, но не получил ее.
2 - после долгих волнений и приближения я прокомментировал строку smtpd_relay_restrictions в main.cf, перезапустил postfix и вуаля, получаю почту извне. несколько тестов показали, что комментирование строки не сделало меня открытым реле (не знаю, почему), настолько хорошим для меня
Теперь все работает
Временные сбои поиска часто вызваны проблемами DNS. Проверьте, правильно ли работает DNS и можно ли разрешить записи MX для домена, на который вы отправляете электронное письмо.