Немаршрутизируемый адрес с exim4

Я использую exim4. У меня есть установка Wordpress с контактной формой. Мое имя хоста -f — mydomain.com.

Форма отправляет электронное письмо на адрес [email protected]. Однако он никогда не доходит до моей электронной почты «вне сайта». Как я могу настроить это так, чтобы электронная почта не застревала на веб-сервере?

Exim должен перенаправить (направить) электронное письмо на электронную почту вне сайта [email protected]. Когда я отправляю, например, из gmail на этот адрес, он сразу же доставляется.

Я следовал этому руководству: https://library.linode.com/email/exim/send-only-mta-debian-6-squeeze, но это не помогло с этой проблемой.

mydomain:/var/mail# exim -bt -d [email protected] 2>&1
Exim version 4.80 uid=0 gid=0 pid=23864 D=fbb95cfd
Berkeley DB: Berkeley DB 5.1.29: (October 25, 2011)
Support for: crypteq iconv() IPv6 GnuTLS move_frozen_messages DKIM
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch nis nis0 passwd
Authenticators: cram_md5 plaintext
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Compiler: GCC [4.7.2]
Library version: GnuTLS: Compile: 2.12.20
                         Runtime: 2.12.20
Library version: PCRE: Compile: 8.31
                       Runtime: 8.30 2012-02-04
Total 13 lookups
WHITELIST_D_MACROS: "OUTGOING"
TRUSTED_CONFIG_LIST: "/etc/exim4/trusted_configs"
changed uid/gid: forcing real = effective
  uid=0 gid=0 pid=23864
  auxiliary group list: <none>
seeking password data for user "uucp": cache not available
getpwnam() succeeded uid=10 gid=10
changed uid/gid: calling tls_validate_require_cipher
  uid=106 gid=109 pid=23865
  auxiliary group list: <none>
tls_validate_require_cipher child 23865 ended: status=0x0
configuration file is /var/lib/exim4/config.autogenerated
log selectors = 00000ffc 00612001
trusted user
admin user
seeking password data for user "mail": cache not available
getpwnam() succeeded uid=8 gid=8
user name "root" extracted from gecos field "root"
originator: uid=0 gid=0 login=root name=root
sender address = [email protected]
Address testing: uid=0 gid=109 euid=0 egid=109
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Testing [email protected]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering [email protected]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing [email protected]
--------> hubbed_hosts router <--------
local_part=info domain=mydomain.com
checking domains
expansion of "${if exists{/etc/exim4/hubbed_hosts}{partial-lsearch;/etc/exim4/hubbed_hosts}fail}" forced failure: assume not in this list
hubbed_hosts router skipped: domains mismatch
--------> dnslookup_relay_to_domains router <--------
local_part=info domain=mydomain.com
checking domains
mydomain.com in "@:localhost:localhost:localhost.localdomain:mydomain.com"? yes (matched "@")
mydomain.com in "! +local_domains : +relay_to_domains"? no (matched "! +local_domains")
dnslookup_relay_to_domains router skipped: domains mismatch
--------> dnslookup router <--------
local_part=info domain=mydomain.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
mydomain.com in "! +local_domains"? no (matched "! +local_domains" - cached)
dnslookup router skipped: domains mismatch
--------> real_local router <--------
local_part=info domain=mydomain.com
real_local router skipped: prefix mismatch
--------> system_aliases router <--------
local_part=info domain=mydomain.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
mydomain.com in "+local_domains"? yes (matched "+local_domains" - cached)
R: system_aliases for [email protected]
calling system_aliases router
rda_interpret (string): ${lookup{$local_part}lsearch{/etc/aliases}}
search_open: lsearch "/etc/aliases"
search_find: file="/etc/aliases"
  key="info" partial=-1 affix=NULL starflags=0
LRU list:
  7/etc/aliases
  End
internal_search_find: file="/etc/aliases"
  type=lsearch key="info"
file lookup required for info
  in /etc/aliases
lookup failed
expanded:
file is not a filter file
parse_forward_list:
system_aliases router declined for [email protected]
--------> userforward router <--------
local_part=info domain=mydomain.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
mydomain.com in "+local_domains"? yes (matched "+local_domains" - cached)
checking for local user
seeking password data for user "info": cache not available
getpwnam() returned NULL (user not found)
userforward router skipped: info is not a local user
--------> procmail router <--------
local_part=info domain=mydomain.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
mydomain.com in "+local_domains"? yes (matched "+local_domains" - cached)
checking for local user
seeking password data for user "info": using cached result
getpwnam() returned NULL (user not found)
procmail router skipped: info is not a local user
--------> maildrop router <--------
local_part=info domain=mydomain.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
mydomain.com in "+local_domains"? yes (matched "+local_domains" - cached)
checking for local user
seeking password data for user "info": using cached result
getpwnam() returned NULL (user not found)
maildrop router skipped: info is not a local user
--------> lowuid_aliases router <--------
local_part=info domain=mydomain.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
mydomain.com in "+local_domains"? yes (matched "+local_domains" - cached)
checking for local user
seeking password data for user "info": using cached result
getpwnam() returned NULL (user not found)
lowuid_aliases router skipped: info is not a local user
--------> local_user router <--------
local_part=info domain=mydomain.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
mydomain.com in "+local_domains"? yes (matched "+local_domains" - cached)
checking local_parts
info in "! root"? yes (end of list)
checking for local user
seeking password data for user "info": using cached result
getpwnam() returned NULL (user not found)
local_user router skipped: info is not a local user
--------> mail4root router <--------
local_part=info domain=mydomain.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
mydomain.com in "+local_domains"? yes (matched "+local_domains" - cached)
checking local_parts
info in "root"? no (end of list)
mail4root router skipped: local_parts mismatch
no more routers
[email protected] is undeliverable: Unrouteable address
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=23864 terminating with rc=2 >>>>>>>>>>>>>>>>

person Kaah    schedule 27.06.2013    source источник


Ответы (2)


Вы пробовали это со своего сервера

эхо-тестовое письмо. | mail -s Тестовое имя@mydomain.com

Также убедитесь, что ваше имя хоста является полным доменом.

пытаться

имя хоста

имя хоста -i

имя хоста должно правильно разрешать или указывать на IP-адрес, указанный именем хоста -i (основной IP-адрес)

Также проверьте запись MX mydomain.com и убедитесь, что она использует локальный почтовый сервер.

person Leo Prince    schedule 28.06.2013
comment
Спасибо, я посмотрю на это. - person Kaah; 28.06.2013
comment
Неа. 127.0.0.1 — это IP-адрес петли локального хоста. Вы не можете отправлять почту с этого IP. Ваше имя хоста должно быть разрешимым. Он должен указывать на общедоступный IP-адрес. Вот что подразумевается под полным доменным именем. - person Leo Prince; 17.07.2013
comment
Привет @LeoPrince, у вас есть ссылка, где мы можем подтвердить, что hostname -i должен возвращать общедоступный IP-адрес? - person stephen; 04.02.2016
comment
Мой предыдущий комментарий был опубликован пару лет назад, когда я был новичком. Сейчас я хотел бы немного изменить этот комментарий. hostname -i выводит IP-адрес путем разрешения DNS. Либо это должно быть полное доменное имя для рекурсивного разрешения с использованием сервера имен, либо оно должно иметь запись в файле hosts. Некоторые поставщики серверов предоставляют общедоступный IP-адрес непосредственно в файле hosts, но некоторые предоставляют частные IP-адреса, это зависит от того, как они управляют системой. Однако я хотел сказать, что имя хоста -i должно предоставить вам доступный разрешающий IP-адрес либо из файла hosts, если он имеет запись, либо из DNS. Надеюсь, это поможет - person Leo Prince; 05.02.2016
comment
почта не на всех хостах exim, что тест должен делать? - person Steve Owens; 17.02.2018

Согласно вики Testing Exim, вы можете проверить маршрутизацию адреса, используя:

exim -bt [email protected]

Это даст вам информацию о том, распознает ли exim4 этот адрес.

person chk    schedule 09.10.2018