中繼後面的後綴用於使用 /etc/aliases 處理傳入和傳出的郵件

中繼後面的後綴用於使用 /etc/aliases 處理傳入和傳出的郵件

postfix我正在嘗試在 Linux 機器上進行設定(帶有 Postfix 2.11 的 Debian 8)。但我在/etc/aliases正常工作方面遇到了一些麻煩。

設定如下: MS Exchange 伺服器是實際的郵件伺服器 - 它接收郵件和傳送郵件,並且與 Linux 電腦位於同一本機網路中。 Linux 電腦上的 Postfix 確實使用此 Exchange 電腦作為中繼主機來傳送郵件。這有效,所以例如到達。mail [email protected]

現在,在 Exchange 上存在一個轉送到 Linux 電腦的郵件地址。我為此/etc/aliases有一個別名,它是程式的管道,因為發送到該地址的郵件包含一些應該由程式解析的程式碼。

為了使這項工作正常進行,我必須更改mydestination中的設定main.cf。但是一旦我這樣做,Postfix就會在/etc/aliases使用其別名時停止轉發郵件。僅輸入長名稱即可。這是我的配置(我從零開始):

# main.cf
# our internet domain name (the thing after the "@")
mydomain = example.com

# this is the critical setting
mydestination = linuxmachine, 192.168.1.200, $mydomain

# IP of Exchange
relayhost = 192.168.1.100

# so that addresses look correct
masquerade_domains = $mydomain

# in order to make the pipe programm work with correct permission
default_privs = myuser

使用此配置,傳入郵件的管道工作正常,但將郵件發送到別名不起作用:

# /etc/alias
# none of the entries are actual users on the linux machine!

#works when mail to [email protected] comes from external through Exchange to Linux
parser: |/home/user/programname 

# command "mail external" does not work! It sends to external@linuxmachine"
external: [email protected] 

如果我註解掉thenmydestination中的行,則會發送一封郵件到(到達),但傳入的郵件不會透過管道發送。所以,正好相反。main.cfmail external[email protected][email protected]

我必須輸入什麼main.cf/etc/aliases才能使用短名稱從我的 Linux 機器發送郵件,同時能夠透過管道接收郵件?我想要的只是在 Linux 機器上解析一個特殊的地址,並且 Linux 用戶能夠使用短名稱作為“奢侈品”將郵件發送到選定的地址(而不必輸入完整的電子郵件地址)。

更新: postconf -n輸出:

config_directory = /etc/postfix
default_privs = myuser
masquerade_domains = $mydomain
mydestination = linuxmachine, 192.168.1.200, $mydomain
mydomain = example.com
relayhost = 192.168.1.100

更新 2:使用上面的 set/var/log/mail.info執行mail external(郵件到別名)時的輸出:mydestination

Jun 19 10:45:27 linuxmachine postfix/smtp[26425]: 6DFE02003AD: to=<[email protected]>, orig_to=<external>, relay=192.168.1.100[192.168.1.100]:25, delay=0.24, delays=0/0/0/0.24, dsn=2.6.0, status=sent (250 2.6.0 <[email protected]> [InternalId=162319] Queued mail for delivery)

更新3,mydestination根據建議的答案進行更改後,mail.info日誌在執行時顯示以下行mail external

Jun 19 16:07:31 linuxmachine postfix/smtp[2299]: B562720039C: to=<[email protected]>, orig_to=<external>, relay=192.168.1.100[192.168.1.100]:25, delay=2.6, delays=0/0/0/2.5, dsn=2.6.0, status=sent (250 2.6.0 <[email protected]> [InternalId=162971] Queued mail for delivery)

答案1

顯而易見的解決方案是將$myhostname或 linuxmachine.example.com放入mydestination參數中。

解釋

在配置修改之前,這裡是您透過以下方式發送電子郵件後的後台事件mail external

現在修改配置後,會發生這樣的情況

  • Postfix 透過取件服務接收電子郵件。
  • 因為收件者沒有網域部分和(預設)參數append_at_myorigin有值yes,那麼 postfix 會將收件者位址重寫為[電子郵件受保護](你可以在上面的mail.log中看到它)
  • 現在mydestination不包含$myhostname或 linuxmachine.example.com,因此 postfix 不會在中套用別名/etc/aliases

相關內容