Контролен списък за успешна проверка на изпращането и доставката на поща
Следният софтуер ще е необходим за по-нататъшните проверки:
-
Помощната програма host
- Debian/Ubuntu:
apt-get install bind9-host - CentOS:
yum install bind9-host
- Debian/Ubuntu:
-
Помощна програма Telnet
- Debian/Ubuntu:
apt-get install telnet - CentOS:
yum install telnet
- Debian/Ubuntu:
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" срещу желания пощенски домейн

От страна на 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. По-долу можете да видите връзки с инструкции как да решите този проблем:
- AWS: Как да премахна ограничението за порт 25 от моя Amazon EC2 instance или AWS Lambda function?
- Azure: Отстраняване на проблеми с изходящата SMTP свързаност в Azure
- GCP: Изпращане на електронна поща от instance
- DigitalOcean: Защо SMTP е блокиран?
В допълнение към блокирането на портове от вашия хостинг доставчик, трябва да проверите дали портовете на вашия сървър са затворени или не. Нека вземем за пример 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 изглежда така:
-
Проверете дали ipv6 адресът се използва за услугата с командата
netstat -nltp | grep exim
-
В конфигурационния файл
/etc/exim4/exim4.conf.templateтрябва да бъде добавен следният ред най-горе във файла:disable_ipv6=true
-
Запазете промените във файла и след това рестартирайте услугата с команда като:
systemctl restart exim4 -
Изпълнете командата:
netstat -nltp | grep eximза да проверите дали ус лугата вече не е в списъка
Проверете изпращането на поща с помощта на услуги на трети страни
След като сте проверили всички горепосочени елементи, можете да проверите изпращането на поща от вашия сървър, като използвате ресурси на трети страни.
Една от най-удобните и информативни услуги е https://www.mail-tester.com
Като го използвате, можете да проверите текущия рейтинг на вашата поща, да получите информация дали зададените по-горе данни са правилни, както и да получите препоръки за подобряване на рейтинга.
За да направите това, просто изпратете имейл до адреса, който е посочен на сайта, и след това щракнете върху "Then check your score".