Прескачане към основното съдържание

Контролен списък за успешна проверка на изпращането и доставката на поща

Следният софтуер ще е необходим за по-нататъшните проверки:

  • Помощната програма host

    • Debian/Ubuntu: apt-get install bind9-host
    • CentOS: yum install bind9-host
  • Помощна програма Telnet

    • Debian/Ubuntu: apt-get install telnet
    • CentOS: yum install telnet

MX запис

MX записът е вид DNS запис, предназначен за регистриране на пощенски сървъри, използващи протокола SMTP. Този запис отговаря за определянето на сървъра, до който трябва да бъде доставен имейлът от пощенския агент на подателя. В рамките на един домейн може да има няколко записа с различни приоритети.

Можете да проверите дали пощата работи локално или използва пощенски сървър на трета страна, като използвате командата host:

host -t MX example.com

При работа с локалния пощенски сървър ще се покаже изход като следния:

пощата за example.com се обработва от 10 mail.example.com.

Струва си да се отбележи, че записът mail.example.com също може да сочи към друг сървър. Освен това е необходимо да се отбележи, че mail.example.com трябва да бъде съществуващ A запис, сочещ към сървъра, от който изпращате поща.

Можете също да изпълните тези команди за проверка:

host example.com
host mail.example.com

И да сравните IP адресите, към които сочат основният домейн, в този случай example.com, и mail.example.com.

важно

Необходимо е да бъде зададен MX запис, за да могат пощенските сървъри да получават вашата електронна поща.

Пример за MX запис:

Име: example.com.
Тип: MX
Стойност: mail.example.com.
Приоритет: 10

DKIM подпис

С помощта на FASTPANEL® DKIM подписът може да бъде получен в менюто за управление → секция "Mail", като щракнете върху "DKIM" срещу желания пощенски домейн

Активиране на DKIM в FASTPANEL

От страна на DNS записът трябва да бъде добавен по следния начин:

Име: dkim._domainkey
Тип: TXT
Стойност: v=DKIM1; k=rsa; p=public_key

Ето пример за правилния DKIM запис

dkim._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpbBQ0T2xO3/SwziunIC/IFbsxBRub6WXiu8Kc2w7uB4GVw+SAB5wSEslDJbFXQRbdV9i/Duu8EQ9xik8dbqdLVyP4iAtw34g4j6QWKcfocgK4hEkwlPFff1dzUlNQONh2riNE5KVJXuWcizm8hub7nPnl36e7OnxiL0qIU7tT1QIDAQAB

Повече информация за DKIM можете да намерите на https://wikipedia.org/wiki/DomainKeys_Identified_Mail

SPF запис

Наличието на SPF запис може да бъде проверено чрез изпълнение на командата host. В този случай командата ще изглежда така:

host -t TXT example.com

С изход като:

example.com описателен текст "v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all"

Обърнете внимание, че ipv6 може да не присъства в този запис. В този случай SPF подписът ще изглежда така:

example.com описателен текст "v=spf1 ip4:ipv4_of_your_server a mx ~all"

бележка

Необходимо е да се отбележи, че трябва да има само един SPF запис

От страна на DNS записът трябва да бъде добавен по следния начин:

Име: example.com.
Тип: TXT
Стойност:
v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all
или (ако ipv6 не се използва)
v=spf1 ip4:ipv4_of_your_server a mx ~all

Например:

example.com TXT v=spf1 ip4:1.2.3.4 a mx ~all

Повече информация за SPF можете да получите на https://wikipedia.org/wiki/Sender_Policy_Framework

DMARC запис

В повечето случаи стойността на DMARC записа ще бъде една и съща.

От страна на DNS записът трябва да бъде добавен по следния начин:

Име: _dmarc
Тип: TXT
Стойност: v=DMARC1; p=none

Например:

_dmarc.example.com. TXT v=DMARC1; p=none

Повече информация за DMARC можете да намерите на https://wikipedia.org/wiki/DMARC

PTR запис и hostname на сървъра

PTR записът е обратен DNS запис, който преобразува IP адрес в име. Основната цел на този запис за пощенския сървър е да елиминира по-голямата част от спама. Този запис позволява да се определи името на хоста, от който идва електронната поща. Най-често PTR записът съдържа име на домейн, използвано на сървъра.

PTR записът свързва IP адрес с име на хост. Ако PTR записът не е зададен правилно, вашите писма ще бъдат отхвърляни и няма да достигат до получателя.

Hostname трябва да бъде зададен като името на действителния домейн, сочещ към сървъра, а PTR трябва да сочи към домейна, който от своя страна сочи към сървъра.

Например, имате домейн example.com на вашия сървър.

Като изпълните командата:

host example.com

можете да получите изход:

example.com има адрес 1.2.3.4
пощата за example.com се обработва от 10 mail.example.com.

За да се избегнат възможни проблеми, препоръчително е да зададете hostname и PTR записа като съществуващ поддомейн от второ ниво, например mail.example.com

Наличност на SMTP портове

Някои хостинг доставчици ограничават възможността за използване на портове, които се използват за изпращане или получаване на поща. Портовете за пощенски услуги могат да бъдат 25, 587, 465, 143 и 993.

Един от най-лесните начини да проверите наличността на тези портове е да използвате командата telnet.

За да проверите входящата връзка от сървър на трета страна

Изпълнете командата:

telnet ip_adress port

Например, ако се опитате да използвате telnet към порт 25 на 1.2.3.4, командата за изпълнение е:

telnet 1.2.3.4 25

Ако връзката е успешна, ще видите изход като:

Опит за връзка с 1.2.3.4...
Установена е връзка с 1.2.3.4.
Символът за изход е '^]'.

Ако връзката е неуспешна, изходът ще изглежда така:

Свързване с 1.2.3.4 ...
Неуспешно отваряне на връзка към хоста на порт some_port: Connect failed

Или:

telnet: Неуспешно свързване с отдалечения хост: Времето за връзка изтече

За изходяща връзка

От вашия сървър изпълнете командата:

telnet smtp.gmail.com 25

Ако връзката е успешна, ще видите изход като:

Опит за връзка с 2a00:1450:4010:c0b::6c...
Установена е връзка със smtp.gmail.com.
Символът за изход е '^]'.
220 smtp.gmail.com ESMTP j6-20020ac25506000000b004b53eb60e3csm1066162lfk.256 - gsmtp

Моля, имайте предвид, че ако използвате облачен хостинг и използвате порт 25 за вашия SMTP сървър, има голяма вероятност вашият хостинг доставчик по подразбиране да блокира изходящите връзки на порт 25. По-долу можете да видите връзки с инструкции как да решите този проблем:

В допълнение към блокирането на портове от вашия хостинг доставчик, трябва да проверите дали портовете на вашия сървър са затворени или не. Нека вземем за пример iptables, който действа като защитна стена, при използване на контролния панел FASTPANEL. Командата за проверка дали има правило за конкретен порт, в този случай 25, е:

iptables-save | grep 25

Ако нямате правило за порта, който искате да проверите, няма да бъде показана информация. Ако видите, че има правило, блокиращо порта на пощенската услуга, тогава трябва да премахнете това правило с командата:

iptables -D rule chain

Например, изпълнили сте команда и сте открили следното:

iptables-save | grep 25

-A INPUT -p tcp -m tcp --dport 25 -j DROP

Това правило не позволява никакъв достъп до вашия сървър през порт 25, което ще попречи на изпращането на поща

За да премахнете правилото, използвайте командата:

iptables -D INPUT -p tcp -m tcp --dport 25 -j DROP

Този пример с команда ви позволява да проверите всеки порт, използван за изпращане на поща

Влияние на IPv6 върху изпращането на поща

Ако трябва да използвате ipv6 за вашите пощенски услуги, първото нещо, което трябва да направите, е да проверите дали има PTR запис за ipv6 и дали пощенските услуги слушат на ipv6 на определени портове.

Можете да извършите проверката, като използвате командата:

netstat -nltpp | grep tcp6

Резултатът от изхода на тази команда ще бъде списък на всички услуги, които използват ipv6, сред които вече можете да проверите дали вашата пощенска услуга използва този адрес. За съжаление, в наши дни използването на ipv6 може да не работи правилно, дори ако сте направили всички настройки коректно.

Ако сте установили чрез проверка на логовете на пощенската услуга, че грешката е свързана с ipv6 и цялата конфигурация е правилна, можете да деактивирате използването на ipv6 за пощенската услуга.

На примера с exim4 деактивирането на ipv6 изглежда така:

  1. Проверете дали ipv6 адресът се използва за услугата с командата

    netstat -nltp | grep exim

    Проверете дали ipv6 адресът се използва от exim

  2. В конфигурационния файл /etc/exim4/exim4.conf.template трябва да бъде добавен следният ред най-горе във файла:

    disable_ipv6=true

  3. Запазете промените във файла и след това рестартирайте услугата с команда като:

    systemctl restart exim4
  4. Изпълнете командата:

    netstat -nltp | grep exim

    за да проверите дали услугата вече не е в списъка

    Проверете дали ipv6 е деактивиран за exim

Проверете изпращането на поща с помощта на услуги на трети страни

След като сте проверили всички горепосочени елементи, можете да проверите изпращането на поща от вашия сървър, като използвате ресурси на трети страни.

Една от най-удобните и информативни услуги е https://www.mail-tester.com

Като го използвате, можете да проверите текущия рейтинг на вашата поща, да получите информация дали зададените по-горе данни са правилни, както и да получите препоръки за подобряване на рейтинга.

За да направите това, просто изпратете имейл до адреса, който е посочен на сайта, и след това щракнете върху "Then check your score".

Тествайте пощата �си с mail-tester