когда электронное письмо отправляется несуществующему домену или получателю, я хотел бы, чтобы отправитель немедленно получил электронное письмо от почтового демона, информирующее о том, что получатель не существует.
На самом деле в моей системе происходит то, что электронное письмо попадает в отложенную очередь и остается там время, указанное в конфигурации. Как я установил delay_warning_time = 30m
через 30 минут в очереди отправитель получает уведомление, но это не то, что мне нужно для несуществующих адресов. Я бы хотел немедленно отклонить электронное письмо и уведомить отправителя.
Кто-нибудь знает, что я делаю не так? большое спасибо
В настоящее время электронные письма несуществующих получателей находятся в очереди постфиксов:
# mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- AA6CA48DCC 1496 Wed Feb 12 12:56:36 user@domain.com (connect to mx.email-srv.com[199.231.85.98]:25: Connection timed out) foo@gmai.com 6FF9948DFF 1498 Wed Feb 12 13:07:04 user@domain.com (connect to mx.email-srv.com[199.231.85.98]:25: Connection timed out) foo@gmai.com
Вот моя конфигурация Postfix:
2bounce_notice_recipient = $delay_notice_recipient alias_database = hash:/etc/postfix/aliases alias_maps = hash:/etc/postfix/aliases broken_sasl_auth_clients = no command_directory = /usr/sbin config_directory = /etc/postfix content_filter = amavis:[127.0.0.1]:10024 daemon_directory = /usr/lib/postfix data_directory = /var/lib/postfix debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 delay_notice_recipient = admin delay_warning_time = 30m disable_vrfy_command = yes header_checks = regexp:/etc/postfix/header_checks html_directory = no inet_interfaces = all inet_protocols = all local_recipient_maps = mail_owner = postfix mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man masquerade_domains = mail.domain.es mail.domain.com hostname.domain.es hostname.domain.com maximal_backoff_time = 8000s maximal_queue_lifetime = 5d milter_default_action = accept milter_protocol = 2 minimal_backoff_time = 1000s mydestination = mydomain = domain.es myhostname = mail.domain.es mynetworks_style = host myorigin = domain.es newaliases_path = /usr/bin/newaliases.postfix non_smtpd_milters = $smtpd_milters queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES relayhost = relocated_maps = mysql:/etc/postfix/mysql_relocated.cf sample_directory = /usr/share/doc/postfix-2.6.6/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop smtp_helo_timeout = 60s smtp_tls_CAfile = /etc/ssl/certs/sf_bundle.crt smtp_tls_note_starttls_offer = yes smtp_tls_security_level = may smtp_use_tls = yes smtpd_banner = $myhostname ESMTP $mail_name smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org, reject_rbl_client blackholes.easynet.nl, reject_rbl_client dnsbl.njabl.org smtpd_data_restrictions = reject_unauth_pipelining smtpd_delay_reject = yes smtpd_hard_error_limit = 12 smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit smtpd_milters = inet:localhost:8891 smtpd_recipient_limit = 16 smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, reject_unknown_helo_hostname, permit_sasl_authenticated, permit smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = smtpd_sasl_security_options = noanonymous smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit smtpd_soft_error_limit = 3 smtpd_tls_cert_file = /etc/ssl/certs/domain.es.crt smtpd_tls_key_file = /etc/ssl/private/domain.key smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_security_level = may smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom transport_maps = mysql:/etc/postfix/mysql_transport.cf transport_retry_time = 30s unknown_local_recipient_reject_code = 450 virtual_alias_maps = mysql:/etc/postfix/mysql_alias.cf virtual_gid_maps = static:5000 virtual_mailbox_base = /var/spool/mail/virtual virtual_mailbox_domains = mysql:/etc/postfix/mysql_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_mailbox.cf virtual_uid_maps = static:5000
Каким образом postfix должен знать, что адрес электронной почты не существует, или удаленный сервер просто недоступен (как, кажется, в случае с застрявшей в очереди почтой). Обычно postfix будет пытаться отправить письмо, но если он не получит окончательный ответ от удаленного сервера, обычно это 550 ответов (450 диапазонов означают, что они временно недоступны), postfix не может определить, существует ли электронное письмо или нет. это еще одна проблема, которая может позволить успешно доставить электронное письмо позже.