Назад | Перейти на главную страницу

Cloudflare - невозможно отправить электронное письмо

Я не могу отправлять электронные письма после настройки Cloudflare. Я создал запись A mail.example.com и запись MX как example.com. Когда я получаю электронные письма, все работает нормально, но когда сервер отправляет электронную почту, я получаю сообщение об ошибке:

to=<john.doe@example.no>, relay=ASPMX.L.GOOGLE.COM[74.125.205.26]:25, delay=0.58, delays=0.05/0.01/0.45/0.07, dsn=5.1.1, status=bounced (host ASPMX.L.GOOGLE.COM[74.125.205.26] said: 550-5.1.1 The email account that you tried to reach does not exist.

Однако странно то, что поле to даже не содержит gmail-адреса. Так почему Google даже пытается разрешить это пользователю Gmail? В чем может быть проблема с этим вопросом? Настройка DNS и Postfix?

Если я отправлю электронное письмо на учетные записи Gmail, все будет нормально. Но для любых других доменов кажется, что Google просто отскакивает от него, так как он ожидает gmail-адрес.

РЕДАКТИРОВАТЬ:

main.cf (редактируйте значения, которые могут идентифицировать сервер):

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
disable_vrfy_command = yes
home_mailbox = Maildir/
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
mydestination = $myhostname, mail.example.com, localhost.example.com, localhost, $mydomain
mydomain = example.com
myhostname = mail.example.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 xxx.xxx.xxx.xx
myorigin = $mydomain
readme_directory = no
recipient_delimiter = +
relayhost = myhost.com
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_helo_required = yes
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

master.cf:

smtp       inet  n       -       y       -       -       smtpd
pickup     unix  n       -       y       60      1       pickup
cleanup    unix  n       -       y       -       0       cleanup
qmgr       unix  n       -       n       300     1       qmgr
tlsmgr     unix  -       -       y       1000?   1       tlsmgr
rewrite    unix  -       -       y       -       -       trivial-rewrite
bounce     unix  -       -       y       -       0       bounce
defer      unix  -       -       y       -       0       bounce
trace      unix  -       -       y       -       0       bounce
verify     unix  -       -       y       -       1       verify
flush      unix  n       -       y       1000?   0       flush
proxymap   unix  -       -       n       -       -       proxymap
proxywrite unix  -       -       n       -       1       proxymap
smtp       unix  -       -       y       -       -       smtp
relay      unix  -       -       y       -       -       smtp
showq      unix  n       -       y       -       -       showq
error      unix  -       -       y       -       -       error
retry      unix  -       -       y       -       -       error
discard    unix  -       -       y       -       -       discard
local      unix  -       n       n       -       -       local
virtual    unix  -       n       n       -       -       virtual
lmtp       unix  -       -       y       -       -       lmtp
anvil      unix  -       -       y       -       1       anvil
scache     unix  -       -       y       -       1       scache
maildrop   unix  -       n       n       -       -       pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp       unix  -       n       n       -       -       pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail     unix  -       n       n       -       -       pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp      unix  -       n       n       -       -       pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n       n       -       2       pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman    unix  -       n       n       -       -       pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}

С настройкой relayhost = host.example.com вы устанавливаете место назначения следующего перехода для нелокальной почты; то есть вместо того, чтобы доставлять сообщения электронной почты непосредственно по назначению, вы указываете postfix, что он может просто передать все сообщения сервер ретрансляции (иногда называемый "умный хост"), который должен выполнить фактическую доставку.

По умолчанию relayhost не установлен, и postfix будет (пытаться) доставлять почту непосредственно получателю.

Обычно ваш сервер Postfix должен быть авторизован хостом-ретранслятором, прежде чем этот сервер примет ваши сообщения. Эта авторизация часто представляет собой белый список на основе IP-адресов, или вам необходимо предоставить учетные данные.

Когда ваши письма возвращаются, либо вы не авторизованы на хосте-ретрансляторе, либо этот хост-ретранслятор настроен неправильно.