Checklista för lyckad e-postsändning och verifiering av leverans
Följande programvara krävs för fortsatta kontroller:
-
Verktyget host
- Debian/Ubuntu:
apt-get install bind9-host - CentOS:
yum install bind9-host
- Debian/Ubuntu:
-
Verktyget telnet
- Debian/Ubuntu:
apt-get install telnet - CentOS:
yum install telnet
- Debian/Ubuntu:
MX-post
En MX-post är en typ av DNS-post som används för att registrera e-postservrar med SMTP-protokollet. Den här posten används för att avgöra till vilken server ett e-postmeddelande ska levereras av avsändarens e-postagent. Det kan finnas flera posttyper med olika prioriteter på en och samma domän.
Du kan kontrollera om e-posten fungerar lokalt eller använder en e-postserver från tredje part med kommandot host:
host -t MX example.com
När du arbetar med den lokala e-postservern visas en utdata enligt följande:
e-post för example.com hanteras av 10 mail.example.com.
Det är värt att nämna att posten mail.example.com också kan peka till en annan server. Dessutom är det viktigt att notera att mail.example.com måste vara en befintlig A-post som pekar till servern du skickar e-post från.
Du kan också köra dessa kommandon för kontroll:
host example.com
host mail.example.com
Och jämföra IP-adresserna som den primära domänen, i det här fallet example.com, och mail.example.com pekar till.
En MX-post måste vara konfigurerad för att e-postservrar ska kunna ta emot din e-post.
Exempel på MX-post:
Namn: example.com.
Typ: MX
Värde: mail.example.com.
Prioritet: 10
DKIM-signatur
Med hjälp av FASTPANEL® kan DKIM-signaturen hämtas i hanteringsmenyn → avsnittet "Mail" genom att klicka på "DKIM" framför den aktuella e-postdomänen

På DNS-sidan måste posten läggas till enligt följande:
Namn: dkim._domainkey
Typ: TXT
Värde: v=DKIM1; k=rsa; p=public_key
Här är ett exempel på korrekt DKIM-post
dkim._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpbBQ0T2xO3/SwziunIC/IFbsxBRub6WXiu8Kc2w7uB4GVw+SAB5wSEslDJbFXQRbdV9i/Duu8EQ9xik8dbqdLVyP4iAtw34g4j6QWKcfocgK4hEkwlPFff1dzUlNQONh2riNE5KVJXuWcizm8hub7nPnl36e7OnxiL0qIU7tT1QIDAQAB
Mer information om DKIM finns på https://wikipedia.org/wiki/DomainKeys_Identified_Mail
SPF-post
Förekomsten av en SPF-post kan kontrolleras genom att köra kommandot host. I det här fallet ser kommandot ut så här:
host -t TXT example.com
Med utdata som:
example.com beskrivande text "v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all"
Observera att ipv6 kanske inte finns med i denna post. I det här fallet ser SPF-signaturen ut så här:
example.com beskrivande text "v=spf1 ip4:ipv4_of_your_server a mx ~all"
Det är viktigt att påpeka att det bara får finnas en SFP-post
På DNS-sidan ska posten läggas till enligt följande:
Namn: example.com.
Typ: TXT
Värde:
v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all
eller (om ipv6 inte används)
v=spf1 ip4:ipv4_of_your_server a mx ~all
Till exempel:
example.com TXT v=spf1 ip4:1.2.3.4 a mx ~all
Mer information om SPF finns på https://wikipedia.org/wiki/Sender_Policy_Framework
DMARC-post
I de flesta fall är värdet för DMARC-posten detsamma.
På DNS-sidan måste posten läggas till enligt följande:
Namn: _dmarc
Typ: TXT
Värde: v=DMARC1; p=none
Till exempel:
_dmarc.example.com. TXT v=DMARC1; p=none
Mer information om DMARC finns på https://wikipedia.org/wiki/DMARC
PTR-post och serverns värdnamn
PTR-posten är en omvänd DNS-post som omvandlar en IP-adress till ett namn. Huvudsyftet med denna post för e-postservern är att eliminera merparten av spam. Den här posten gör det möjligt att fastställa namnet på en värd som ett e-postmeddelande kommer från. Vanligtvis innehåller en PTR-post ett domännamn som används på servern.
PTR-posten associerar en ip-adress med ett värdnamn. Om PTR-posten inte är korrekt angiven kommer dina e-postmeddelanden att avvisas och inte nå mottagaren.
Värdnamnet ska anges som namnet på den faktiska domän som pekar till servern, och PTR-posten ska peka till domänen, som i sin tur pekar till servern.
Du har till exempel en domän, example.com, på din server.
Genom att köra kommandot:
host example.com
kan du få följande utdata:
example.com har adressen 1.2.3.4
example.com e-post hanteras av 10 mail.example.com.
För att undvika möjliga problem rekommenderas att ange värdnamnet och PTR-posten som en befintlig subdomän på andra nivån, till exempel mail.example.com
Tillgänglighet för SMTP-portar
Vissa hostingleverantörer stänger möjligheten att använda portar som används för att skicka eller ta emot e-post. Portar för e-posttjänster kan vara 25, 587, 465, 143 och 993.
Ett av de enklaste sätten att kontrollera tillgängligheten för dessa portar är att använda kommandot telnet.
För att kontrollera inkommande anslutning från en tredjepartsserver
Kör kommandot:
telnet ip_adress port
Om du till exempel försöker använda telnet mot port 25 på 1.2.3.4 är kommandot att köra:
telnet 1.2.3.4 25
Om anslutningen lyckas ser du en utdata som denna:
Försöker ansluta till 1.2.3.4...
Ansluten till 1.2.3.4.
Escape-tecken är '^]'.
Om anslutningen misslyckas ser utdatan ut så här:
Ansluter till 1.2.3.4 ...
Det gick inte att öppna anslutningen till värden på port some_port: Anslutningen misslyckades
Eller:
telnet: Det gick inte att ansluta till fjärrvärden: Anslutningen överskred tidsgränsen
För en utgående anslutning
Kör kommandot från din server:
telnet smtp.gmail.com 25
Om anslutningen lyckas ser du en utdata som denna:
Försöker ansluta till 2a00:1450:4010:c0b::6c...
Ansluten till smtp.gmail.com.
Escape-tecken är '^]'.
220 smtp.gmail.com ESMTP j6-20020ac25506000000b004b53eb60e3csm1066162lfk.256 - gsmtp
Observera att om du använder molnhosting och använder port 25 för din SMTP-server, är chansen stor att din hostingleverantör blockerar utgående anslutningar på port 25 som standard. Nedan kan du se länkar med instruktioner om hur du löser detta problem:
- AWS: Hur tar jag bort begränsningen på port 25 från min Amazon EC2-instans eller AWS Lambda-funktion?
- Azure: Felsök problem med utgående SMTP-anslutning i Azure
- GCP: Skicka e-post från en instans
- DigitalOcean: Varför är SMTP blockerat?
Utöver portblockering från din hostingleverantör måste du kontrollera om portarna på din server är stängda eller inte. Låt oss ta iptables som exempel, vilket fungerar som en brandvägg, i FASTPANEL-kontrollpanelen. Kommandot för att kontrollera om det finns en regel för en specifik port, i detta fall 25, är:
iptables-save | grep 25
Om du inte har någon regel för porten du vill kontrollera visas ingen information. Om du ser att det finns en regel som blockerar porten för e-posttjänsten måste du ta bort denna regel med kommandot:
iptables -D rule chain
Du körde till exempel ett kommando och fick följande:
iptables-save | grep 25
-A INPUT -p tcp -m tcp --dport 25 -j DROP
Denna regel tillåter ingen åtkomst till din server via port 25, vilket kommer att förhindra e-postutskick
För att ta bort regeln använder du kommandot:
iptables -D INPUT -p tcp -m tcp --dport 25 -j DROP
Detta exempelkommando låter dig kontrollera varje port som används för e-postutskick
IPv6:s påverkan på e-postutskick
Om du behöver använda ipv6 för dina e-posttjänster är det första du behöver göra att kontrollera om det finns en PTR-post för ipv6 och om e-posttjänsterna lyssnar på ipv6 på vissa portar.
Du kan utföra kontrollen med kommandot:
netstat -nltpp | grep tcp6
Resultatet av utdatan från detta kommando blir en lista över alla tjänster som använder ipv6, där du redan kan kontrollera om din e-posttjänst använder denna adress. Tyvärr kan användningen av ipv6 numera fungera felaktigt även om du har gjort alla inställningar korrekt.
Om du genom att kontrollera loggarna för e-posttjänsten upptäcker att felet är relaterat till ipv6 och hela konfigurationen är korrekt, kan du inaktivera användningen av ipv6 för e-posttjänsten.
I exemplet med exim4 ser inaktivering av ipv6 ut så här:
-
Kontrollera om ipv6-adressen används för tjänsten med kommandot
netstat -nltp | grep exim
-
I konfigurationsfilen
/etc/exim4/exim4.conf.templatemåste följande rad läggas till allra högst upp i filen:disable_ipv6=true
-
Spara ändringarna i filen och starta sedan om tjänsten med ett kommando som:
systemctl restart exim4 -
Kör kommandot:
netstat -nltp | grep eximför att kontrollera att tjänsten inte längre finns i listan
Kontrollera e-postutskick med hjälp av tredjepartstjänster
När du har kontrollerat alla ovanstående punkter kan du kontrollera e-postutskick från din server med hjälp av resurser från tredje part.
En av de mest bekväma och informativa tjänsterna är https://www.mail-tester.com
Genom att använda den kan du kontrollera den aktuella bedömningen av din e-post, få information om huruvida uppgifterna ovan är korrekta eller inte, samt få en rekommendation för att förbättra bedömningen.
För att göra detta skickar du bara ett e-postmeddelande till adressen som anges på webbplatsen och klickar sedan på "Then check your score".
