Postfix

後綴,快遞在本地工作,不接收外部消息

  • February 2, 2014

我剛剛在 ubuntu 12.04 機器上重新安裝了 Postfix 和 courier

郵件伺服器似乎在內部工作,直到您嘗試從外部地址(如 gmail)發送電子郵件。

同一台伺服器上的 apache、mysql 等都在內部和外部正常執行。

反向查找正確返回。

netstat -nl 返回

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:783           0.0.0.0:*               LISTEN
tcp        0      0 173.255.238.79:53       0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN 
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:2905          0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:4190            0.0.0.0:*               LISTEN
tcp6       0      0 :::993                  :::*                    LISTEN
tcp6       0      0 :::995                  :::*                    LISTEN
tcp6       0      0 :::110                  :::*                    LISTEN
tcp6       0      0 :::143                  :::*                    LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::53                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:5432                :::*                    LISTEN
tcp6       0      0 :::25                   :::*                    LISTEN
tcp6       0      0 ::1:953                 :::*                    LISTEN
tcp6       0      0 :::4190                 :::*                    LISTEN

etc/postfix/main.cf 是

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
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 = /usr/share/doc/postfix

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.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

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = fasttrackdispatch.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = fasttrackdispatch.com, localhost, localhost.localdomain
relayhost = 
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
html_directory = /usr/share/doc/postfix/html
virtual_alias_domains = 
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.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
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
virtual_maildir_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
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks       $virtual_mailbox_limit_maps
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

查看 mail.log 時,沒有顯示消息已收到或被拒絕 - 幾乎就像從未發送過一樣

發件人不會收到任何類型的消息,說明請求被拒絕或發生任何類型的錯誤。

我試圖在 ubuntu 防火牆上打開 25 埠,然後關閉防火牆,看看這是否無濟於事。

任何幫助表示讚賞 - 謝謝

我真的不確定發生了什麼 - 任何幫助表示讚賞。

現在 inet_interface = 所有我在向該地址發送郵件時收到的回信

這是主機 fasttrackdispatch.com 上的郵件系統。

很遺憾不得不通知您,您的郵件無法發送給一個或多個收件人。它附在下面。

如需更多幫助,請發送郵件到郵政。

如果您這樣做,請附上此問題報告。您可以從附加的返回消息中刪除您自己的文本。

              The mail system

<email@domain.tld>: unknown user: "james.stafford"

Final-Recipient: rfc822; email@domain.tld
Original-Recipient: rfc822;email@domain.tld
Action: failed
Status: 5.1.1
Diagnostic-Code: X-Postfix; unknown user: "james.stafford"

我不明白為什麼它說它是一個未知使用者,而實際上它是一個在內部工作的設置帳戶

新郵件.log

Jan 22 14:31:47 localhost postfix/smtpd[14264]: connect from mail-wi0-f178.google.com[209.85.212.178]
Jan 22 14:31:47 localhost postfix/trivial-rewrite[14267]: warning: do not list domain fasttrackdispatch.com in BOTH mydestination and virtual_mailbox_domains
Jan 22 14:31:47 localhost postfix/smtpd[14264]: BF9C4B64C: client=mail-wi0-f178.google.com[209.85.212.178]
Jan 22 14:31:47 localhost postfix/cleanup[14270]: BF9C4B64C: message-id=<CAE0rcYX=LwLJOUVnaaCvv33xnMxBXXonUt-8ncV06e9v+SST6w@mail.gmail.com>
Jan 22 14:31:47 localhost postfix/qmgr[13856]: BF9C4B64C: from=<email@domain.tld>, size=1806, nrcpt=1 (queue active)
Jan 22 14:31:48 localhost postfix/smtpd[14264]: disconnect from mail-wi0-f178.google.com[209.85.212.178]
Jan 22 14:31:53 localhost postfix/smtpd[14276]: connect from localhost[127.0.0.1]
Jan 22 14:31:53 localhost postfix/trivial-rewrite[14267]: warning: do not list domain fasttrackdispatch.com in BOTH mydestination and virtual_mailbox_domains
Jan 22 14:31:53 localhost postfix/smtpd[14276]: B128DB64D: client=localhost[127.0.0.1]
Jan 22 14:31:53 localhost postfix/cleanup[14270]: B128DB64D: message-id=<CAE0rcYX=LwLJOUVnaaCvv33xnMxBXXonUt-8ncV06e9v+SST6w@mail.gmail.com>
Jan 22 14:31:53 localhost postfix/qmgr[13856]: B128DB64D: from=<email@domain.tld>, size=2378, nrcpt=1 (queue active)
Jan 22 14:31:53 localhost postfix/smtpd[14276]: disconnect from localhost[127.0.0.1]
Jan 22 14:31:53 localhost postfix/trivial-rewrite[14267]: warning: do not list domain fasttrackdispatch.com in BOTH mydestination and virtual_mailbox_domains
Jan 22 14:31:53 localhost amavis[11815]: (11815-04) Passed CLEAN, [209.85.212.178] [209.85.212.178] <email@domain.tld> -> <email@domain.tld>, Message-ID: <CAE0rcYX=LwLJOUVnaaCvv33xnMxBXXonUt-8ncV06e9v+SST6w@mail.gmail.com>, mail_id: gdtQkyTU2m1h, Hits: -0.799, size: 1806, queued_as: B128DB64D, dkim_id=@gmail.com, 5753 ms
Jan 22 14:31:53 localhost postfix/smtp[14271]: BF9C4B64C: to=<email@domain.tld>, relay=127.0.0.1[127.0.0.1]:10024, delay=6.1, delays=0.34/0.01/0/5.8, dsn=2.0.0, status=sent (250 2.0.0 from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as B128DB64D)
Jan 22 14:31:53 localhost postfix/qmgr[13856]: BF9C4B64C: removed
Jan 22 14:31:53 localhost postfix/local[14278]: B128DB64D: to=<email@domain.tld>, relay=local, delay=0.04, delays=0.01/0.02/0/0.01, dsn=5.1.1, status=bounced (unknown user: "james.stafford")
Jan 22 14:31:53 localhost postfix/cleanup[14270]: BA7FAB64E: message-id=<email@domain.tld>
Jan 22 14:31:53 localhost postfix/qmgr[13856]: BA7FAB64E: from=<>, size=4322, nrcpt=1 (queue active)
Jan 22 14:31:53 localhost postfix/bounce[14279]: B128DB64D: sender non-delivery notification: BA7FAB64E
Jan 22 14:31:53 localhost postfix/qmgr[13856]: B128DB64D: removed
Jan 22 14:31:56 localhost postfix/smtp[14280]: BA7FAB64E: to=<jhstaffo@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.137.27]:25, delay=2.7, delays=0.01/0.01/0.58/2.1, dsn=2.0.0, status=sent (250 2.0.0 OK 1390401116 g10si11097167yhn.109 - gsmtp)
Jan 22 14:31:56 localhost postfix/qmgr[13856]: BA7FAB64E: removed

請檢查使用者表的映射是否正常工作。

因為我有一個類似的設置(使用 mysql 的虛擬使用者/域),所以我在為使用者請求使用正確的語法/查詢時遇到了問題。

現在我會檢查使用者是否真的在伺服器上有一個文件夾。

您使用 uid 5000 這可能意味著您使用了一些設置,其中創建所有虛擬使用者的使用者名為 vmail。如果是這種情況,您的設置(域/使用者名)應該包含與此類似的內容:

/home/vmail/domain.tld/virtual_username

檢查此文件夾是否存在並且其中有幾個文件夾或文件。

如果它不存在,則返回使用者名的查詢可能是錯誤的:

我的 /etc/postfix/mysql-virtual_mailboxes.cf) 看起來像這樣:

user = DB_accessuser
password = XXXX
dbname = mail
table = users
select_field = CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
where_field = email
hosts = 127.0.0.1

另外:“設置一個內部工作的帳戶”的用法是什麼意思

您的郵件伺服器似乎不知道該帳戶,這使我相信它不在 virtual_mailboxes 列表中,儘管我不知道您是否可以使用上述設置訪問實際的“真實”使用者。在我的這不起作用“realuser@domain.tld”不起作用,“virtual_user@domain.tld”工作正常。

回复您添加的郵件日誌:

修復應該是這樣的(來自 howtoforge 的qoute):

錯誤:後綴 - 不在 mydestination 和 virtual_mailbox_domains 中列出域 example.com

您在 /etc/postfix/main.cf 中的 virtual_mailbox_domains 指令和 mydestination 行(也在 /etc/postfix/main.cf 中)中引用的資源(例如 MySQL 數據庫)中有 example.com!這行不通。您可以在 virtual_mailbox_domains 或 mydestination 中列出 example.com,但不能同時在兩者中列出。

修改後重啟 Postfix

/etc/init.d/postfix restart 

引用自:https://serverfault.com/questions/569051