Ana içeriğe atla

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
  • Telnet yardımcı programı

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

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.

önemli

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

FASTPANEL'de DKIM'i etkinleştirin

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"

not

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:

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:

  1. Hizmetin ipv6 adresini kullanıp kullanmadığını şu komutla kontrol edin

    netstat -nltp | grep exim

    exim tarafından ipv6 adresinin kullanılıp kullanılmadığını kontrol edin

  2. /etc/exim4/exim4.conf.template yapılandırma dosyasında, dosyanın en üstüne aşağıdaki satır eklenmelidir:

    disable_ipv6=true

  3. Değişiklikleri dosyaya kaydedin ve ardından hizmeti şu komutla yeniden başlatın:

    systemctl restart exim4
  4. Şu komutu çalıştırın:

    netstat -nltp | grep exim

    hizmetin artık listede olmadığını kontrol etmek için

    ipv6'nın exim için devre dışı bırakılıp bırakılmadığını kontrol edin

Üçü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.

Postanızı mail-tester ile test edin