Назад | Перейти на главную страницу

postfix + virtual users (db): добавление адреса для ответа

У меня есть установка postfix / dovecot / mysql на Centos 6.5, следуя руководству на DigitalOcean.

У меня виртуальные адреса и псевдонимы работают нормально, и теперь я пытаюсь добавить псевдоним donotreply.

В моей таблице виртуальных пользователей есть запись для donotreply@mydomain.com с целью devnull.

В конце /etc/aliases у меня есть

devnull: /dev/null

Я побежал newaliases после этого.

Проверка виртуального псевдонима:

$ postmap -q donotreply@mydomain.com mysql:/etc/postfix/mysql-virtual-alias-maps.cf 
devnull

Когда я отправляю письмо на этот адрес, я получаю сообщение о том, что "пользователь не существует" для devnull@mydomain.com

Mar 25 14:48:12 vps1 postfix/lmtp[7686]: 8543360392: to=<devnull@mydomain.com>, orig_to=<donotreply@mydomain.com>, relay=host.mydomain.com[private/dovecot-lmtp], delay=0.14, delays=0.07/0.01/0.01/0.05, dsn=5.1.1, status=bounced (host host.mydomain.com[private/dovecot-lmtp] said: 550 5.1.1 <devnull@mydomain.com> User doesn't exist: devnull@mydomain.com (in reply to RCPT TO command))

Postfix (и dovecot) перезагружались после каждого изменения, и все равно не повезло.

Мой postfix conf:

$ postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
milter_default_action = accept
milter_protocol = 2
mydestination = localhost
myhostname = host.mydomain.com
myorigin = $mydomain
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
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_milters = inet:127.0.0.1:8891
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /path/to/ssl/cert
smtpd_tls_key_file = /path/to/ssl/privatekey
smtpd_use_tls = yes
unknown_local_recipient_reject_code = 550
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp

Я также попытался включить карты локальных получателей в /etc/postfix/main.cf

local_recipient_maps = unix:passwd.byname $alias_maps

но это тоже не сработало.

Я также создал локального пользователя devnull

$ useradd -M -d /dev/null -s /sbin/nologin devnull

но это тоже ничего не изменило.

Как получить виртуальный псевдоним для перенаправления на / dev / null?

Также вы можете использовать ОТКАЗАТЬ

ОТКАЗАТЬ необязательный текст ...

Заявите об успешной доставке и молча отклоните сообщение. Зарегистрируйте необязательный текст, если он указан, в противном случае зарегистрируйте общее сообщение.

smtpd_recipient_restrictions =
 check_recipient_access hash:/etc/postfix/virtual_access
 reject_unknown_recipient_domain
 permit_mynetworks
 permit_sasl_authenticated
 reject_unauth_destination

# cat virtual_access
no-reply@example.net DISCARD DEV-NULL

# postmap virtual_access

Отправить простое сообщение

# echo "Hello world" | swaks -4 --server localhost --from alex@example.net --to no-reply@example.net --h-Subject "Test message" --body -
=== Trying localhost:25...
=== Connected to localhost.
<-  220 smtp.example.net ESMTP Postfix
 -> EHLO jenkins.example.net
<-  250-smtp.example.net
<-  250-PIPELINING
<-  250-SIZE 10240000
<-  250-VRFY
<-  250-ETRN
<-  250-AUTH LOGIN PLAIN
<-  250-ENHANCEDSTATUSCODES
<-  250-8BITMIME
<-  250 DSN
 -> MAIL FROM:<alex@example.net>
<-  250 2.1.0 Ok
 -> RCPT TO:<no-reply@example.net>
<-  250 2.1.5 Ok
 -> DATA
<-  354 End data with <CR><LF>.<CR><LF>
 -> Date: Mon, 28 Mar 2016 09:09:50 +0000
 -> To: no-reply@example.net
 -> From: alex@example.net
 -> Subject: Test message
 -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 ->
 -> Hello world
 ->
 ->
 -> .
<-  250 2.0.0 Ok: queued as 835721C7EBD
 -> QUIT
<-  221 2.0.0 Bye
=== Connection closed with remote host.

Проверить журнал рассылки

Mar 28 09:09:46 ci postfix/postfix-script[16971]: starting the Postfix mail system
Mar 28 09:09:46 ci postfix/master[16972]: daemon started -- version 2.6.6, configuration /etc/postfix
Mar 28 09:09:50 ci postfix/smtpd[16978]: connect from localhost[127.0.0.1]
Mar 28 09:09:50 ci postfix/smtpd[16978]: NOQUEUE: discard: RCPT from localhost[127.0.0.1]: <no-reply@example.net>: Recipient address DEV-NULL; from=<alex@example.net> to=<no-reply@example.net> proto=ESMTP helo=<jenkins.example.net>
Mar 28 09:09:50 ci postfix/smtpd[16978]: 835721C7EBD: client=localhost[127.0.0.1]
Mar 28 09:09:50 ci postfix/smtpd[16978]: disconnect from localhost[127.0.0.1]