Я установил постфикс только для отправки. Postfix работает, когда я отправляю письмо на полный адрес электронной почты. Однако, если письмо отправляется пользователю, оно добавляет имя FQDN в качестве расширения, а не просто имя домена, которое я настроил во время установки.
Например, когда я отправляю письмо по ssh так:
echo "This will go into the body of the mail." | mail -s "Hello world" root
Я хочу, чтобы почта отправлялась на root@example.com.au
. Но письмо отправлено на root@host.example.com.au
.
Я просмотрел настройки своего хоста, настройки почтового имени, настройки постфикса и понятия не имею, почему он продолжает добавлять к нему полное имя хоста, которое, очевидно, получает отказ. Вот мои файлы конфигурации:
Постфикс main.cf:
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
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 = no
# TLS parameters
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
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = host.example.com.au
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination =
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
virtual_alias_maps = hash:/etc/postfix/virtual
Псевдонимы:
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
/ и т.д. / постфикс / виртуальный:
root admin@example.com.au
/ etc / mailname:
example.com.au
/ etc / hosts:
127.0.0.1 localhost
11x.0.0.xxx host.example.com.au host
/ etc / hostname
host
Я просмотрел все и не понимаю, почему почту отправляют на @host.example.com.au
. Кто-нибудь может мне здесь помочь?
Я использую debian 8.
РЕДАКТИРОВАТЬ: Только что я попытался добавить еще один параметр в файл main.cf: masquerade_domains = $mydomain
. Добавление этого, похоже, исправляет from
адрес, чтобы показать мое доменное имя вместо имени хоста, но все же to
адрес все еще имеет полное доменное имя. Я получаю уведомление о недоставленном электронном письме "Система доставки почты" на свой адрес электронной почты, так как исходный адрес электронной почты теперь находится сразу после добавления masquerade_domains
, но до сих пор не могу понять, почему электронная почта пользователя не соблюдает то же самое и to
адрес по-прежнему адресуется как root@host.example.com.au
вместо того root@example.com.au
.
myhostname = host.example.com.au
mydomain = example.com.au
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
masquerade_domains = $mydomain
mydestination =
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Вам нужно указать псевдоним для root
в /etc/aliases
файл, как показано ниже, а затем запустите newaliases
и он должен работать.
root: admin@example.com.au
Я протестировал это, и он работает.
Наконец-то он заработал. Вот шаги, которые я сделал для решения моей проблемы:
1) мое предназначение:
Поскольку у меня был почтовый сервер только для отправки, я оставил mydestination
в main.cf
файл пустой согласно странице руководства postfix. Однако выполнение do привело к тому, что локальные электронные письма отправлялись с добавленным именем хоста, которое было возвращено. Поэтому я добавил $hostname
и localhost
так как mydestination
в main.cf
как это:
mydestination = $myhostname, localhost
2) псевдонимы:
Затем я добавил адрес электронной почты для пользователя root в /etc/aliases
как это:
root: root@example.com.au
3) newaliases:
Наконец, я перестраиваю псевдонимы и перезагружаю постфикс.
sudo newaliases
sudo service postfix reload
Что это исправило:
Поскольку псевдонимы используются только для локальной доставки, а у меня нет локальной доставки (что означает, что $ mydestination пуст), наличие корневого адреса электронной почты в псевдонимах не имело никакого значения. Теперь после добавления $hostname
в пункт назначения, любые электронные письма, отправленные пользователю, к которым добавлялись $hostname
подбирается как $mydestination
это тогда относится к aliases
который в конечном итоге сообщает postfix доставить это письмо на другой адрес электронной почты.
Я до сих пор не понимаю, почему постфикс игнорировал $domainname
так как myorigin
в первую очередь и продолжал добавлять hostname
суффикс для пользователя до сих пор остается загадкой. Однако вышеупомянутый метод кажется решением, когда postfix непреклонен в добавлении hostname
на все письма, адресованные пользователю напрямую.
Надеюсь это поможет!
Можете ли вы попробовать добавить example.com.au в файл hosts? Ссылка: http://www.tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap9sec95.html