Я начну с самого важного - я прочитал / просмотрел множество руководств, руководств, форумов и предложений по этому поводу, но все же у меня есть ощущение, что я не понимаю чего-то большого во всей системе электронной почты, но в то же время - чего-то очень простого и маленький.
Конфигурация Postfix (основные настройки):
main.cf
mail_owner = postfix
myhostname = mail.mywebsite.com
mydomain = mywebsite.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8
smtpd_banner = $myhostname ESMTP
sendmail_path = /usr/sbin/sendmail.postfix
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
broken_sasl_auth_clients = yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_key_file = /path/to/ssl/server.key
smtpd_tls_cert_file = /path/to/ssl/server.crt
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_milters = inet:127.0.0.1:8891, inet:127.0.0.1:8893
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
smtp_host_lookup = dns, native
Я не настроил использование каких-либо серверов ретрансляции, потому что считаю, что этот сервер должен иметь возможность отправлять электронные письма самостоятельно.
master.cf
smtp inet n - n - - smtpd
-o smtpd_tls_auth_only=yes
-o smtpd_tls_security_level=none
-o smtpd_sasl_auth_enable=no
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_enforce_tls=yes
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject
-o smtpd_sasl_tls_security_options=noanonymous
-o smtpd_sasl_security_options=noanonymous,noplaintext
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o syslog_name=postfix/smtps
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject
-o smtpd_sasl_security_options=noanonymous,noplaintext
-o smtpd_sasl_tls_security_options=noanonymous
-o milter_macro_daemon_name=ORIGINATING
policy unix - n n - 0 spawn user=nobody argv=/bin/python /usr/libexec/postfix/policyd-spf
Эта проблема -
Я столкнулся с тем, что некоторые из моих исходящих писем блокируются интернет-провайдером на 25-м порту. И я должен сказать несколько вещей об этом случае:
Вопрос - Как я могу обновить свой сервер и / или службу постфикса, чтобы мои исходящие электронные письма не блокировались интернет-провайдерами?
Дополнительно -
Обновить - Пример письма с отказом от возвращенного электронного письма:
This is the mail system at host mail.mywebsite.com.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<phi@receiveremail.com>: connect to
cluster5.eu.messagelabs.com[195.245.230.51]:25: Connection timed out
Reporting-MTA: dns; mail.mywebsite.com
X-Postfix-Queue-ID: 9004B2089
X-Postfix-Sender: rfc822; support@mywebsite.com
Arrival-Date: Mon, 2 Oct 2017 11:14:25 +0200 (CEST)
Final-Recipient: rfc822; phi@receiveremail.com
Original-Recipient: rfc822;phi@receiveremail.com
Action: failed
Status: 4.4.1
Diagnostic-Code: X-Postfix; connect to
cluster5.eu.messagelabs.com[195.245.230.51]:25: Connection timed out
Return-Path: <support@mywebsite.com>
Received: from [10.25.80.102] (unknown [81.92.27.224])
(using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
(No client certificate requested)
by mail.mywebsite.com (Postfix) with ESMTPSA id 9004B2089
for <phi@receiveremail.com>; Mon, 2 Oct 2017 11:14:25 +0200 (CEST)
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.mywebsite.com 9004B2089
Authentication-Results: mail.mywebsite.com; dmarc=fail (p=none dis=none) header.from=mywebsite.com
Authentication-Results: mail.mywebsite.com; spf=fail smtp.mailfrom=support@mywebsite.com
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.mywebsite.com 9004B2089
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mywebsite.com;
s=default; t=1506935665;
bh=iIf8iBaIOhXI2dMpT9tm3bYRnKMjiK49NsVTB66/1aQ=;
h=From:Subject:Date:References:To:In-Reply-To:From;
b=hZFiYO9NE09XtWTa7mxOq+W8s9aajWQVV9e4SY8/XIv3qX9YjULv1rBqmyUfkqKz0
L2q8GSXBJr6ipxQsnoPCKMp7yy05rOu6L5dMyh5XndvEve+w3YkHhisy+unCM69Dyh
M6dPAebLlo1AcF/B0AHqmskqnjvLAj03aBtwF+5E=
From: "Mywebsite.com" <support@mywebsite.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_E368298F-D51E-458B-AC0A-4284381C761C"
Message-Id: <C36F662F-74EB-4953-A032-645BD28283F9@mywebsite.com>
Mime-Version: 1.0 (Mac OS X Mail 9.0 \(3094\))
Date: Mon, 2 Oct 2017 11:14:24 +0200
References: <c2b741d3a1cd4352a8a75768833a4e33@HQ-MBX-01.receiveremail.com>
To: Per Hildebrand <phi@receiveremail.com>
In-Reply-To: <c2b741d3a1cd4352a8a75768833a4e33@HQ-MBX-01.receiveremail.com>
X-Mailer: Apple Mail (2.3094)
Обновление 2 -
Пройдя через несколько писем с отказом от возвращенных писем, я заметил, что некоторые его строки изменились в один момент (когда я постоянно добавлял обновления с форумов, чтобы предотвратить блокировку исходящих писем). С этого момента в сообщениях об ошибках говорилось, что электронные письма заблокированы в cluster5.eu.messagelabs.com из-за тайм-аута соединения.
Решение -
Чтобы решить проблему с заблокированными сообщениями электронной почты на порту 25 на серверах VPS, просто убедитесь, что сервер полностью авторизован, DNS настроен правильно и сообщения электронной почты подписаны всеми необходимыми сертификатами. Вот список всех необходимых задач для исправного сервера с почтовой системой:
Вы можете проверить результаты и ход внедрения этих обновлений в различных «службах проверки почтового спама», например в mail-tester.com интернет сайт.
Что касается последней проблемы с исходящей электронной почтой, заблокированной в сервисах cluster5.eu.messagelabs.com:
Упомянутый ранее mail-tester.com веб-сайт также обеспечивает проверку имени хоста и IP-адреса вашего сервера в различных почтовых спам-сервисах, где проверяются черные списки. Если эти службы сообщают вам, что ваш сервер не занесен в черный список спама, это не означает стопроцентную правду. Это был мой случай.
messagelabs.com (сейчас: symantec.com) обычно не указывается в этих проверках спам-фильтра, поэтому ваш тестировщик скажет вам, что электронные письма не будут блокироваться ни одним фильтром спама. Но, по всей видимости, есть некоторые почтовые компании, которые используют эту службу (messagelabs.com) в качестве проверки на спам, прежде чем позволить электронным письмам попадать в почтовые ящики. Это означает, что вы должны быть уверены, что IP / имя хоста вашего сервера не находится в их черном списке. Вы можете проверить это, введя свой сервер через командную строку и выполнив команду:
telnet cluster5.eu.messagelabs.com 25
Если вы получаете тайм-аут подключения, это означает, что ваш сервер может быть внесен в черный список их службы.
Чтобы удалить свой сервер из черных списков сервиса messagelabs.com, необходимо выполнить следующие действия:
Наконечник -
Если вы когда-нибудь столкнетесь с подобной проблемой, всегда начинайте с инструкций, которые были даны пользователем "barrycarter" в этом посте. Это поможет вам быстрее определить, в какой части письма блокируются. Благодаря его ответу мне быстрее удалось понять, где на самом деле кроется проблема (поэтому отмечу его ответ как правильный).
Трудно понять, о чем вы говорите. Я могу предложить не так много.
Если ваш почтовый сервер не может настроить порт 25 только для одного домена, возможно, вы заблокированы брандмауэром принимающей стороны?
РЕДАКТИРОВАТЬ:
Итак, копия сообщения с вашего почтового сервера дает понять, что соединение, которое не работает, - это соединение вашего сервера с cluster5.eu.messagelabs.com [195.245.230.51]: 25: и что время ожидания соединения истекло .
FWIW, я могу подключиться к порту 25 195.245.230.51 с моего почтового сервера. Это может означать, что на удаленном конце возникла временная проблема, и в этом случае ваша почта, вероятно, уже прошла. Кроме того, ваше соединение может быть заблокировано правилом брандмауэра.
Возможно, стоит проверить, попал ли ваш почтовый сервер в какой-либо из основных черных списков RBL. Вам также следует просмотреть свои почтовые журналы, чтобы увидеть, всегда ли вам не удается подключиться к удаленному почтовому узлу. Если вы предприняли попытки доставки, которые активировали правила спама или были для несуществующих пользователей, удаленный конец может иметь некоторую систему для автоматической блокировки вашего IP-адреса, возможно, временно, поскольку эта стратегия снижает нагрузку на их серверы, сохраняя при этом низкие административные требования. .
Есть некоторая путаница в доменах, которые я вижу в заголовках ваших писем. В To
кажется, что заголовок соответствует IP-адресу, на который вы действительно доставляете. Я ожидаю различных receiveremail.com
ссылки от вас частично санируют то, что вы разместили? В противном случае вам нужно было бы искать перевод целевого адреса перед попыткой доставки (например, через псевдонимы).
Мои мысли:
С VPS попробуйте такие вещи, как host -t mx xyz.com
, и, когда вы получите результат вроде mail.xyz.com
, сделай что-нибудь вроде ncat mail.xyz.com 25
или даже telnet mail.xyz.com
. Это проверит, работает ли что-то на гораздо более низком уровне.
На домашней машине попробуйте ncat my-vps-server 25
чтобы подтвердить, что это не удается, а затем ncat my-vps-server 587
чтобы убедиться, что это работает.
Сообщение об ошибке, которое вы получаете cluster5.eu.messagelabs.com[195.245.230.51]:25: Connection timed out
появляется, когда ваш VPS пытается подключиться к удаленному серверу через SMTP-порт 25. Это не имеет ничего общего с тем, как ваш домашний компьютер подключается к вашему VPS.
Мое собственное решение для гетто (которое работает, но некрасиво): sudo ssh -L 25:127.0.0.1:25 user@yourvps.com
, создавая ssh-туннель между портом 25 вашего компьютера и портом 25 вашего VPS.