Postfix отправляет, но не получает электронную почту

574
mipnw

Я запускаю postfix на Raspberry Pi за домашним маршрутизатором с настроенным динамическим DNS. Postfix может отправлять электронную почту просто отлично, но, похоже, не получает.

Я думаю, что домашний маршрутизатор и динамический DNS в порядке, я размещаю веб-сайт на Raspberry Pi, он отлично работает и общедоступен. Так что либо моя запись MX не настроена должным образом, либо постфикс не (я думаю).

(Я отредактировал свое имя хоста ниже).

Конфигурация динамического DNS для myhostname.ddns.net

  • IPv4-адрес: IP-адрес моего Raspberry Pi
  • Запись MX: myhostname.ddns.net, Приоритет 1

Настройка перенаправления портов на домашнем маршрутизаторе

D Service Port Internal Port IP Address Protocol 1 80 80 192.168.0.10 ALL # web server 2 22 22 192.168.0.10 ALL # ssh 3 25 25 192.168.0.10 TCP # mail server 

на 3-м компьютере не Raspberry Pi

  • ping myhostname.ddns.net: работает, я вижу IP-адрес моего Raspberry Pi, отвечающего.
  • указывая браузер на http://myhostname.ddns.net: работает, я вижу корень сайта. Это подтверждает, что динамический DNS работает и переадресация домашнего маршрутизатора работает.
  • в учетной записи gmail отправка почты pi@myhostname.ddns.netне удалась примерно через 24 часа с сообщением «Доставка не завершена, сервер-получатель не принял наши запросы на подключение. Превышено время ожидания». Если вы знаете более быстрый способ тестирования, который не требует ожидания 24 часа, пожалуйста, дайте мне знать.

на Raspberry Pi, вошли как "пи"

$ mail No mail for pi  $ dig myhostname.ddns.net MX +short 1 myhostname.ddns.net  $ sudo postfix status postfix/postfix-script: the Postfix mail system is running: PID: 16232  $ sudo netstat -plutn | grep 25 tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 16232/master  $ sudo iptables -L -n -v Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination  Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination  Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination  $ cat /etc/postfix/main.cf smtpd_banner = $myhostname ESMTP $mail_name (Raspbian) biff = no append_dot_mydomain = no readme_directory = no 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_security_level = may smtpd_tls_session_cache_database = btree:$/smtpd_scache smtp_tls_session_cache_database = btree:$/smtp_scache smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination myhostname = myhostname.ddns.net alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = myhostname.ddns.net, myhostname, localhost.localdomain,  localhost mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = ipv4 home_mailbox = Maildir/ mailbox_command = relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_CAfile = /etc/postfix/cacert.pem smtp_use_tls = yes  $ cat /etc/mailname myhostname.ddns.net 

Обновить

Comcast блокирует порт 25, см. Https://www.xfinity.com/support/articles/email-port-25-no-longer-supported.

1
Возможно, вы уже знаете об этом, но существует большое количество служб, которые будут принимать почту на порт 25 от вашего имени (вы помещаете их серверы в свои записи MX), и они будут перенаправлять почту на незаблокированный альтернативный порт вашего дома. соединение, которое прослушивает ваш почтовый сервер (переадресация портов на локальном маршрутизаторе, очевидно, все еще применяется). Единственным недостатком является то, что большинство хотят получить приличную сумму денег за эти услуги. Самым дешевым, что я лично нашел, является https://mxguarddog.com/. Они на самом деле могут быть бесплатными, если вы можете жить только с использованием postmaster@yourdomain.com. Anaksunaman 6 лет назад 0
@ Anaksunaman Я не знал об этих услугах, спасибо! Похоже, что mxguarddog.com теперь стоит $ 0,25 / пользователь / мес., Неплохо, хотя это следует добавить к стоимости хостинга почтового сервера, поскольку все, что они делают - это ретрансляция. Тем не менее, это хороший вариант! mipnw 6 лет назад 1

2 ответа на вопрос

1
Chris

Здесь есть несколько вещей, которые вы должны проверить.

  1. Я думаю, Google не может отправить вам электронное письмо, потому что у вас нет записи MX. Но давайте представим, что это не проблема, и давайте решим другие проблемы. (Нет, DDNS не даст вам MX по многим причинам)

  2. убедитесь, что вы можете подключиться к вашему порту 25 из Интернета. Я думаю, вы не сможете, но чтобы проверить это, пожалуйста, сделайте следующее:

    nc -vv myhostname.ddns.net 25

или же

telnet myhostname.ddns.net 25 

Это должно показать, разрешено ли вам подключаться к порту 25 - учтите, некоторые интернет-провайдеры могут блокировать входящие подключения к порту 25. Конечно, вам нужно проверить свой внутренний брандмауэр на своем компьютере (какой дистрибутив Linux вы используете?)

  1. Как только вы подключитесь к своему серверу, вы сможете отправить электронное письмо, используя telnet / nc.

    EHLO myhostname.ddns.net

(Вы должны получить несколько строк, начинающихся с 250)

mail from: your@myhostname.ddns.net rcpt to: email@to_send_it_to.com subject: Test email 

и затем начните печатать свою электронную почту. Конец с одним "." в последней строке вот так:

Test email from my server. . 

Затем вы должны увидеть, что электронное письмо было отправлено или, по крайней мере, принято. Не нужно ждать 24 часа :)

  1. Я действительно сомневаюсь, что вы сможете использовать свой почтовый сервер Pi для всего, кроме нескольких тестов. Начнем с того, что у вас нет записей MX и нет контроля над DKIM, PTR и SPF ... Другими словами, он не будет готов к работе, и люди не будут принимать электронные письма с вашего сервера. А тот факт, что вы используете динамический IP, означает, что ваш IP заблокирован 99% фильтрами спама. да, просто потому что это не статично.
1. На самом деле мой провайдер DDNS дает мне возможность настроить запись MX. Я настроил это. И `dig myhostname.ddns.net MX + short` возвращает` 1 myhostname.ddns.net`, чего я и ожидаю. mipnw 6 лет назад 0
2. Это действительно проблема. Я могу подключиться к порту 25 изнутри локальной сети, но не снаружи. Порт 25 на rasbperry PI открыт, так как я могу подключиться к нему из локальной сети. Переадресация портов на моем домашнем маршрутизаторе работает, так как я могу подключиться к PI за пределами локальной сети и перемещаться по веб-сайту из-за пределов локальной сети. Так что порты 80 и 22 передаются просто отлично, а порт 25 также настроен на пересылку. Comcast должен блокировать порт 25, но почему? mipnw 6 лет назад 0
3. Я не ожидаю, что этот PI будет обрабатывать огромное количество трафика. Не в этом смысл этой установки. Мои потребности должны быть удовлетворены более чем соответствующим образом малиновым PI. Кроме того, я могу отправлять электронные письма от PI через SMTP GMAILs, и они не попадают в папки со спамом получателей. Мне все равно, если мой PI получает СПАМ, когда я открываю порт 25, я могу с этим справиться. mipnw 6 лет назад 0
Linux дистрибутив на PI - распбиен mipnw 6 лет назад 0
Comcast блокирует порт 25: https://www.xfinity.com/support/articles/email-port-25-no-longer-supported mipnw 6 лет назад 0
0
Kyrie001

Как говорит Comcast на портах, заблокированных в сети Comcast, вы можете использовать порт 587.

Изменить: ComCast также заявил -> Если вы используете почтовый сервер, пожалуйста, свяжитесь с Comcast Customer Security Assurance по телефону 1-877-807-6580 для получения дополнительной информации об этом блоке.

Смотрите: Как настроить шифрование TLS в Postfix

Настройка шифрования TLS не позволит моему почтовому серверу получать входящие электронные письма от других почтовых серверов моим пользователям. Если я понимаю SMTP (не уверен, что знаю), почтовые серверы, пытающиеся доставить электронную почту на мой сервер, подключатся к порту 25. Порт 587 предназначен для исходящих электронных писем от моих пользователей через мой сервер в остальной мир. Порт 25 заблокирован, поэтому я никогда не получаю электронные письма, что противоречит цели хостинга за домашним интернет-сервисом. mipnw 6 лет назад 2
https://serverfault.com/questions/149903/what-ports-to-open-for-mail-server Kyrie001 6 лет назад 0
в самом деле. Ответ Джейсона Берга в вашей ссылке: «Порт 25 должен быть открыт для того, чтобы он мог получать почту из Интернета. Все почтовые серверы установят соединение на порт 25 и при необходимости инициируют TLS (шифрование) на этом порту». вполне понятно. К сожалению, это означает, что почтовый сервер хостинга не работает по прибытии, если порт 25 заблокирован. mipnw 6 лет назад 0