SF/SOで何時間もDigをして、たくさんグーグルで検索した後でも、/ etc/aliasesがpostfixでどのように使用されているのか理解できません。
srv.example.com
に設定されています/etc/aliases
を含むルールでroot: [email protected]
を設定しました/etc/aliases
の変更を考慮してnewaliases
を実行しますSudo service postfix restart
echo "something" | mailx -s D"subject" root
は、[email protected]
ではなく[email protected]
にメールを送信します私はこれを/var/log/maillog
で追跡しました:
Mar 13 17:21:23 srv postfix/smtpd[14462]: A27B540A87: client=localhost[127.0.0.1]
Mar 13 17:21:23 srv postfix/cleanup[14466]: A27B540A87: message-id=<55031c93.Il7wUJmrkLu/WLNL%[email protected]>
Mar 13 17:21:23 srv opendkim[2065]: A27B540A87: DKIM-Signature field added (s=prod-key-swf, d=example.com)
Mar 13 17:21:23 srv postfix/qmgr[14458]: A27B540A87: from=<[email protected]>, size=820, nrcpt=1 (queue active)
Mar 13 17:21:23 srv sendmail[14461]: t2DHLNlC014461: to=root, [email protected] (serveur srv) (500/500), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30309, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Ok: queued as A27B540A87)
Mar 13 17:21:25 srv postfix/smtp[14467]: A27B540A87: to=<[email protected]>, relay=aspmx.l.google.com[64.233.186.27]:25, delay=2, delays=0.1/0.01/1.4/0.48, dsn=5.1.1, status=bounced (Host aspmx.l.google.com[64.233.186.27] said: 550-5.1.1 The email account that you tried to reach does not exist. Please try 550-5.1.1 double-checking the recipient's email address for typos or 550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1 http://support.google.com/mail/bin/answer.py?answer=6596 f78si2479139qkh.47 - gsmtp (in reply to RCPT TO command))
Mar 13 17:21:26 srv postfix/bounce[14468]: A27B540A87: sender non-delivery notification: 2297E40A86
Mar 13 17:21:26 srv postfix/qmgr[14458]: A27B540A87: removed
私の唯一の接尾辞構成の変更は( null-client config ):
myhostname = srv.example.com
myorigin = $mydomain
relayhost = $mydomain
inet_interfaces = loopback-only
mydestination =
/ etc/aliasesステートメントを期待どおりに適用するために、どのステップが欠落していますか?
私のSudo 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
html_directory = no
inet_interfaces = loopback-only
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
milter_default_action = accept
mydestination =
myhostname = srv.example.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
relayhost = $mydomain
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
unknown_local_recipient_reject_code = 550
「nullクライアント」が nullクライアント であることを理解した後、私はもう少し理解するために 後置仮想ドメインの方法 を掘り下げます。
myorigin
を定義する必要がありますmyorigin also specifies the default domain name that is appended to recipient addresses that have no @domain part
(/et/postfix/main.cf
から取得)。/etc/aliases
を使用してローカルメールをルーティングしません。私のメールはroot
/fail2ban
/me
...に書き換えられるため[email protected]
/[email protected]
.。[email protected]
を[email protected]
に書き換えるための接尾辞が必要です@srv.example.com [email protected]
に/etc/postfix/canonical
を追加しますcanonical_maps = hash:/etc/postfix/canonical
に/etc/postfix/main.cf
を追加しますpostmap /etc/postfix/canonical
を実行し、接尾辞を再起動します(Sudo service postfix restart
)元のターゲットユーザーの情報を保持するために、もう少し進んだ。そのために正規表現を使用できます:
/etc/postfix/main.cf
では、canonical_maps = hash:/etc/postfix/canonical
の代わりにcanonical_maps = regexp:/etc/postfix/canonical
を使用します/etc/postfix/canonical
では、@srv.example.com [email protected]
の代わりに、(.+)@(.+).example.com [email protected]
を使用して[email protected]宛てのメールを受信しました(後でsrv2、srv3、srvxを使用します...)私はあまりにも早く助けを求めました、この答えが同じ問題で立ち往生している他の人を助けることを願っています。