Başarılı posta gönderimi ve teslimat doğrulaması için kontrol listesi
Sonraki kontroller için aşağıdaki yazılımlar gerekecektir:
-
host yardımcı programı
- Debian/Ubuntu:
apt-get install bind9-host - CentOS:
yum install bind9-host
- Debian/Ubuntu:
-
Telnet yardımcı programı
- Debian/Ubuntu:
apt-get install telnet - CentOS:
yum install telnet
- Debian/Ubuntu:
MX kaydı
MX kaydı, SMTP protokolünü kullanan posta sunucularını kaydetmek için tasarlanmış bir DNS kaydı türüdür. Bu kayıt, bir e-postanın gönderenin posta aracısı tarafından hangi sunucuya teslim edilmesi gerektiğini belirlemekten sorumludur. Bir alan adında farklı önceliklere sahip birden fazla kayıt türü bulunabilir.
host komutunu kullanarak postanın yerel olarak mı çalıştığını yoksa üçüncü taraf bir posta sunucusu mu kullandığını kontrol edebilirsiniz:
host -t MX example.com
Yerel posta sunucusuyla çalışırken çıktı aşağıdaki gibi görüntülenecektir:
example.com postası 10 mail.example.com tarafından işlenir.
mail.example.com kaydının başka bir sunucuya da yönlendirilebileceğini belirtmek gerekir. Ayrıca mail.example.com kaydının, postaları gönderdiğiniz sunucuya işaret eden mevcut bir A kaydı olması gerektiğini de belirtmek gerekir.
Kontrol için şu komutları da çalıştırabilirsiniz:
host example.com
host mail.example.com
Ve bu durumda example.com ile mail.example.com için işaret edilen IP adreslerini karşılaştırın.
Posta sunucularının e-postalarınızı alabilmesi için bir MX kaydının ayarlanmış olması gerekir.
MX kaydı örneği:
Ad: example.com.
Tür: MX
Değer: mail.example.com.
Öncelik: 10
DKIM imzası
FASTPANEL® yardımıyla DKIM imzası, yönetim menüsünde → gerekli posta alan adının karşısındaki "DKIM" seçeneğine tıklanarak "Posta" bölümünden elde edilebilir

DNS tarafında kayıt aşağıdaki şekilde eklenmelidir:
Ad: dkim._domainkey
Tür: TXT
Değer: v=DKIM1; k=rsa; p=public_key
İşte doğru DKIM kaydına bir örnek
dkim._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpbBQ0T2xO3/SwziunIC/IFbsxBRub6WXiu8Kc2w7uB4GVw+SAB5wSEslDJbFXQRbdV9i/Duu8EQ9xik8dbqdLVyP4iAtw34g4j6QWKcfocgK4hEkwlPFff1dzUlNQONh2riNE5KVJXuWcizm8hub7nPnl36e7OnxiL0qIU7tT1QIDAQAB
DKIM hakkında daha fazla bilgiye https://wikipedia.org/wiki/DomainKeys_Identified_Mail adresinden ulaşabilirsiniz
SPF kaydı
SPF kaydının varlığı, host komutu çalıştırılarak kontrol edilebilir. Bu durumda komut şu şekilde görünecektir:
host -t TXT example.com
Çıktı ise şöyle olur:
example.com descriptive text "v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all"
Bu kayıtta ipv6 bulunmayabileceğini unutmayın. Bu durumda SPF imzası şu şekilde görünecektir:
example.com descriptive text "v=spf1 ip4:ipv4_of_your_server a mx ~all"
Yalnızca bir SPF kaydı olması gerektiğini belirtmek gerekir
DNS tarafında kayıt aşağıdaki şekilde eklenmelidir:
Ad: example.com.
Tür: TXT
Değer:
v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all
ya da (ipv6 kullanılmıyorsa)
v=spf1 ip4:ipv4_of_your_server a mx ~all
Örneğin:
example.com TXT v=spf1 ip4:1.2.3.4 a mx ~all
SPF hakkında daha fazla bilgiye https://wikipedia.org/wiki/Sender_Policy_Framework adresinden ulaşabilirsiniz
DMARC kaydı
Çoğu durumda DMARC kayıt değeri aynı olacaktır.
DNS tarafında kayıt aşağıdaki şekilde eklenmelidir:
Ad: _dmarc
Tür: TXT
Değer: v=DMARC1; p=none
Örneğin:
_dmarc.example.com. TXT v=DMARC1; p=none
DMARC hakkında daha fazla bilgiye https://wikipedia.org/wiki/DMARC adresinden ulaşabilirsiniz
PTR kaydı ve sunucunun hostname değeri
PTR kaydı, bir IP adresini bir ada dönüştüren ters DNS kaydıdır. Bu kaydın posta sunucusu için temel amacı spam'in büyük bir kısmını ortadan kaldırmaktır. Bu kayıt, bir e-postanın geldiği ana bilgisayarın adını belirlemeye olanak tanır. En yaygın olarak bir PTR kaydı, sunucuda kullanılan bir alan adını içerir.
PTR kaydı, bir IP adresini bir ana bilgisayar adıyla ilişkilendirir. PTR kaydı doğru belirtilmezse postalarınız reddedilir ve alıcıya ulaşmaz.
Hostname, sunucuya işaret eden gerçek alan adının adı olarak belirtilmelidir ve PTR, sırayla sunucuya işaret eden alan adına işaret etmelidir.
Örneğin, sunucunuzda example.com alan adı var.
Komutu çalıştırarak:
host example.com
şu çıktıyı alabilirsiniz:
example.com has address 1.2.3.4
example.com mail is handled by 10 mail.example.com.
Olası sorunları önlemek için hostname ve PTR kaydının, örneğin mail.example.com gibi mevcut bir ikinci seviye alt alan adı olarak ayarlanması önerilir
SMTP portlarının kullanılabilirliği
Bazı hosting sağlayıcıları, posta göndermek veya almak için kullanılan portların kullanımını kapatır. Posta hizmetleri için portlar 25, 587, 465, 143 ve 993 olabilir.
Bu portların kullanılabilirliğini kontrol etmenin en kolay yollarından biri telnet komutunu kullanmaktır.
Üçüncü taraf bir sunucudan gelen bağlantıyı kontrol etmek için
Komutu çalıştırın:
telnet ip_adress port
Örneğin, 1.2.3.4 üzerinde 25 numaralı porta telnet denemesi yaparsanız çalıştırılacak komut şöyledir:
telnet 1.2.3.4 25
Bağlantı başarılı olursa şu şekilde bir çıktı görürsünüz:
Trying 1.2.3.4...
Connected to 1.2.3.4.
Escape character is '^]'.
Bağlantı başarısız olursa çıktı şu şekilde görünür:
Connecting To 1.2.3.4 ...
Could not open connection to the host on port some_port: Connect failed
Veya:
telnet: Unable to connect to remote host: Connection timed out
Giden bağlantı için
Sunucunuzdan şu komutu çalıştırın:
telnet smtp.gmail.com 25
Bağlantı başarılı olursa şu şekilde bir çıktı görürsünüz:
Trying 2a00:1450:4010:c0b::6c...
Connected to smtp.gmail.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP j6-20020ac25506000000b004b53eb60e3csm1066162lfk.256 - gsmtp
Lütfen bulut hosting kullanıyorsanız ve SMTP sunucunuz için 25 numaralı portu kullanıyorsanız, hosting sağlayıcınızın varsayılan olarak 25 numaralı portta giden bağlantıları engelliyor olma ihtimalinin yüksek olduğunu unutmayın. Aşağıda bu sorunun nasıl çözüleceğine dair talimatların yer aldığı bağlantıları görebilirsiniz:
- AWS: Amazon EC2 örneğimden veya AWS Lambda işlevimden 25 numaralı port kısıtlamasını nasıl kaldırırım?
- Azure: Azure'da giden SMTP bağlantı sorunlarını giderme
- GCP: Bir örnekten e-posta gönderme
- DigitalOcean: SMTP neden engelleniyor?
Hosting sağlayıcınız tarafından yapılan port engellemesine ek olarak, sunucunuzdaki portların kapalı olup olmadığını da kontrol etmeniz gerekir. Örnek olarak, FASTPANEL kontrol paneli kullanılırken güvenlik duvarı görevi gören iptables'ı ele alalım. Belirli bir port için, bu durumda 25, bir kural olup olmadığını kontrol etme komutu şöyledir:
iptables-save | grep 25
Kontrol etmek istediğiniz port için bir kuralınız yoksa hiçbir bilgi görüntülenmez. Posta hizmeti portunu engelleyen bir kural olduğunu görürseniz, bu kuralı şu komutla kaldırmanız gerekir:
iptables -D rule chain
Örneğin, bir komut çalıştırdınız ve aşağıdakini buldunuz:
iptables-save | grep 25
-A INPUT -p tcp -m tcp --dport 25 -j DROP
Bu kural, 25 numaralı port üzerinden sunucunuza herhangi bir erişime izin vermez ve bu da posta gönderimini engeller
Kuralı kaldırmak için şu komutu kullanın:
iptables -D INPUT -p tcp -m tcp --dport 25 -j DROP
Bu komut örneği, posta gönderimi için kullanılan her portu kontrol etmenize olanak tanır
IPv6'nın posta gönderimine etkisi
Posta hizmetleriniz için ipv6 kullanmanız gerekiyorsa, yapmanız gereken ilk şey ipv6 için bir PTR kaydı olup olmadığını ve posta hizmetlerinin belirli portlarda ipv6'yı dinleyip dinlemediğini kontrol etmektir.
Kontrolü şu komutu kullanarak gerçekleştirebilirsiniz:
netstat -nltpp | grep tcp6
Bu komutun çıktısının sonucu, ipv6 kullanan tüm hizmetlerin bir listesi olacaktır; bunlar arasında posta hizmetinizin bu adresi kullanıp kullanmadığını zaten kontrol edebilirsiniz. Ne yazık ki günümüzde tüm ayarları doğru yapmış olsanız bile ipv6 kullanımı düzgün çalışmayabilir.
Posta hizmetinin günlüklerini kontrol ederek hatanın ipv6 ile ilgili olduğunu öğrendiyseniz ve tüm yapılandırma doğruysa, posta hizmeti için ipv6 kullanımını devre dışı bırakabilirsiniz.
exim4 örneğinde ipv6'nın devre dışı bırakılması şu şekilde görünür:
-
Hizmetin ipv6 adresini kullanıp kullanmadığını şu komutla kontrol edin
netstat -nltp | grep exim
-
/etc/exim4/exim4.conf.templateyapılandırma dosyasında, dosyanın en üstüne aşağıdaki satır eklenmelidir:disable_ipv6=true
-
Değişiklikleri dosyaya kaydedin ve ardından hizmeti şu komutla yeniden başlatın:
systemctl restart exim4 -
Şu komutu çalıştırın:
netstat -nltp | grep eximhizmetin artık listede olmadığını kontrol etmek için
Üçüncü taraf hizmetleri kullanarak posta gönderimini kontrol edin
Yukarıdaki tüm öğeleri kontrol ettikten sonra üçüncü taraf kaynakları kullanarak sunucunuzdan posta gönderimini kontrol edebilirsiniz.
En kullanışlı ve bilgilendirici hizmetlerden biri https://www.mail-tester.com adresidir
Bunu kullanarak postanızın mevcut puanını kontrol edebilir, yukarıda belirtilen veri kümesinin doğru olup olmadığına dair bilgi alabilir ve ayrıca puanı iyileştirmek için öneri edinebilirsiniz.
Bunu yapmak için sitede listelenen adrese bir e-posta göndermeniz ve ardından "Then check your score" seçeneğine tıklamanız yeterlidir.
