獲取postfix轉發root的郵件
我有一個執行 postfix 的 Ubuntu 伺服器。它不是我域的郵件伺服器。
每當為 root 執行 cron 作業時,輸出郵件不會在本地傳遞,而是通過主郵件伺服器發送到 root@mydomain.com。這不是我想要的。
我希望 root 的郵件要麼在本地發送,要麼轉發到 anothermail@anotherdomain.com。
我已經嘗試修改
~root/.forward
和/etc/aliases
(並執行新別名),但沒有任何幫助(我猜這些文件僅在 postfix 嘗試在本地傳遞郵件時檢查)。我能做些什麼?
這是
/etc/postfix/main.cf
:smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no append_dot_mydomain = no readme_directory = no smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache myhostname = linux1.mydomain.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = linux1.mydomain.com, localhost.linux1.mydomain.com, localhost relayhost = my.isps.relayhost.com mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = loopback-only
編輯:
向 root 發送郵件時,會進入
/var/log/mail.log
:Mar 7 09:39:17 linux1 postfix/pickup[31381]: F3B9C98025E: uid=1000 from=<ct> Mar 7 09:39:18 linux1 postfix/cleanup[31556]: F3B9C98025E: message-id=<20130307083917.F3B9C98025E@linux1.mydomain.com> Mar 7 09:39:18 linux1 postfix/qmgr[28525]: F3B9C98025E: from=<ct@mydomain.com>, size=283, nrcpt=1 (queue active) Mar 7 09:39:18 linux1 postfix/smtp[31558]: F3B9C98025E: to=<root@mydomain.com>, orig_to=<root>, relay=my.isps.relayhost.com[<IP address omitted>]:25, delay=0.72, delays=0.19/0.02/0.27/0.25, dsn=2.0.0, status=sent (250 Ok: queued as A97F5D8126) Mar 7 09:39:18 linux1 postfix/qmgr[28525]: F3B9C98025E: removed
名稱“ct”是我的使用者名。我通過這個命令生成了上面的文本:
echo test | mail -s test root
的內容
/etc/mailname
是:mydomain.com
的內容
/etc/aliases
是:root: anothermail@anotherdomain.com postmaster: root
anothermail@anotherdomain.com 是我希望將 root 的郵件轉發到的位置。
的內容
/etc/hosts
其實讓我有點吃驚:127.0.0.1 localhost 127.0.1.1 linux1.mylinux.mydomain.com linux1
其中“mylinux”是 linux1 作為虛擬機執行的主機作業系統的主機名。我不確定“mylinux”是如何進入那裡的。(但這真的是我問題的原因嗎?)
像往常一樣,檢查您的日誌。
在您的情況下,後綴守護程序認為郵件不適合它並在不使用的情況下發送它
/etc/aliases
首先檢查您的
/etc/hosts
文件:它應該有您的機器名稱對應於127.0.1.1
,如下所示:127.0.1.1 linux1.mydomain.com linux1
檢查你的
/etc/mailname
,它應該是一致的。檢查您
/etc/aliases
是否將root(使用者)發送給另一個使用者,然後重做newaliases
命令。它應該工作!
如果
mydestination
為空或不包含$myhostname
則將/etc/aliases
被忽略,因為 postfix 認為電子郵件不是本地傳遞,因此不會應用本地別名。因此,保留mydestination
預設值(postconf -d mydestination
或從中刪除main.cf
),日誌應顯示to=<...>
為您的別名地址。