Kısa süre önce kitaplarımı ve kurslarımı sattığım yeni bir platform kurdum ve bu web sitesinde kullanıcılarıma e-posta adresi doğrulama ve parola sıfırlama istekleri gibi hesapla ilgili e-postalar göndermem gerekiyordu. Genellikle önerilen mantıklı seçenek Mailgun veya SendGrid gibi ücretli bir e-posta hizmeti kullanmaktır. Büyük Teknoloji şirketlerine yeni bir bağımlılık ekleme fikri moral bozucu olduğu için genel tavsiyenin aksine gidip kendi e-posta sunucumu kurmaya karar verdim.
Üst Düzey Tasarım
En basit çözüm, web uygulamamın insanlara e-posta göndermesine olanak tanır. Başlangıçta diğer e-posta kullanım senaryoları hakkında endişelenmek istemedim. E-posta ile ilgili iki ana protokol şunlardır:
- SMTP (Basit Posta Aktarım Protokolü): E-posta sunucularının mesaj gönderip almak için birbirleriyle konuşmasına izin veren protokoldür. Popüler açık kaynaklı SMTP sunucuları Sendmail ve Postfix'tir.
- IMAP (İnternet Mesaj Erişim Protokolü): Bir kullanıcının uzak bir sunucuda depolanan e-postalara erişmesini ve bunları yönetmesini sağlayan bir protokoldür.
E-posta göndermek için gerçekten ihtiyacınız olan tek şey SMTP'dir. IMAP e-posta göndermek için değil, e-postalara erişmek içindir. Bu yüzden başından beri IMAP'i atlamaya karar verdim.
Gereksinimler ve Hazırlık
Bir e-posta sunucusu çalıştırmak temelde iki şey gerektirir: bir alan adı ve sunucuyu üzerinde çalıştıracağınız bir bilgisayar (örneğin bir VPS). Kendi başınıza e-posta göndermek için bir alan adına sahip olmak aslında zorunludur.
Adım Adım Sunucu Hazırlığı
- Bir VPS Satın Alın: DigitalOcean, Linode veya Hetzner gibi sağlayıcıları kullanabilirsiniz. Bazı sağlayıcıların varsayılan olarak 25. bağlantı noktasını engellediğini unutmayın. Engelini kaldırmalarını istemeniz gerekebilir.
- Bir Ana Bilgisayar Adı (Hostname) Belirleyin: Sunucunuzun uygun bir ana bilgisayar adına ihtiyacı vardır. Alan adınız
example.comise, sunucunuzmail.example.comolabilir.
Temel DNS Kurulumu
Dünyaya e-posta sunucunuzun nerede olduğunu söylemeniz gerekir. Bu DNS kayıtları aracılığıyla yapılır. İki kayıt oluşturmanız gerekecektir:
- A Kaydı:
mail.example.comadresini sunucunuzun IP adresine yönlendirir. - MX Kaydı:
@example.comiçin posta teslimatınımail.example.comadresine yönlendirir.
Postfix Kurulumu
Postfix, elektronik postaları yönlendiren ve teslim eden popüler bir açık kaynaklı posta aktarım aracısıdır (MTA). Ubuntu'ya Postfix'i şu şekilde kurabilirsiniz:
sudo apt-get update
sudo apt-get install postfix
Kurulum sırasında "Internet Site" (İnternet Sitesi) seçeneğini seçin ve alan adınızı girin.
E-posta Güvenliği ve Kimlik Doğrulama
E-postalarınızın spam olarak işaretlenmemesini sağlamak için çeşitli güvenlik politikaları yapılandırmanız gerekir.
Ters DNS (PTR Kaydı)
Sunucunuzun IP adresi, ana bilgisayar adına (mail.example.com) geri çözümlenmelidir. Bunu genellikle VPS sağlayıcınızın kontrol panelinden ayarlarsınız.
DKIM (DomainKeys Identified Mail)
DKIM, e-postalarınıza kriptografik bir imza ekler. Bunu halletmek için OpenDKIM'i kurabilirsiniz. Bir özel/genel anahtar çifti oluşturmayı, giden e-postaları imzalamak için özel anahtarı kullanacak şekilde Postfix'i yapılandırmayı ve genel anahtarı bir TXT DNS kaydında yayınlamayı içerir.
SPF (Sender Policy Framework)
SPF, alıcı sunuculara hangi IP adreslerinin alan adınız adına e-posta göndermeye yetkili olduğunu söyler. DNS'inize bir TXT kaydı ekleyin:
v=spf1 mx a:mail.example.com -all
Bu, yalnızca mail.example.com'un MX kaydının ve A kaydının e-posta göndermesine izin verildiği anlamına gelir.
DMARC (Domain-based Message Authentication, Reporting and Conformance)
DMARC, DKIM ve SPF'yi birbirine bağlar. "Kimden" (From) başlığındaki alan adının DKIM ve SPF tarafından doğrulanan alan adlarıyla eşleşmesini sağlar.
_dmarc.example.com için bir TXT kaydı ekleyin:
v=DMARC1; p=reject; sp=reject; aspf=s; adkim=s;
Sabırlı Olun
Birçok sunucu, e-postaları kabul edip etmemeye karar vermek için bir itibar sistemi kullanır. Başlangıçta e-postalarınız spam klasörlerine teslim edilebilir. Test e-postaları göndermeye ve Postfix günlüklerinizi izlemeye devam edin. Zamanla sunucunuzun itibarı artacaktır.
SSS (Sıkça Sorulan Sorular)
25. Port kesinlikle gerekli mi? Evet, diğer posta sunucularına giden bağlantılar kurmak için 25. port gereklidir. Barındırma sağlayıcınızın bu portta trafiğe izin verdiğinden emin olun.
E-posta göndermek için IMAP'e ihtiyacım var mı? Hayır, IMAP alınan e-postalara erişmek ve bunları yönetmek içindir. E-posta göndermek için sadece SMTP'ye (Postfix) ihtiyacınız vardır.
DKIM, SPF ve DMARC'yi ayarladıktan sonra e-postalarım neden hala spam'e düşüyor? IP itibarı önemli bir rol oynar. Yeni IP'lerin güven oluşturmak için zamana ihtiyacı vardır. Meşru e-postalar göndermeye devam edin, itibarınız zamanla artacaktır.
E-posta göndermek için bir alt alan adı (sub-domain) kullanabilir miyim? Evet, giden uygulama e-postaları için özel olarak bir alt alan adı için SPF, DKIM ve DMARC kayıtlarınızı yapılandırabilirsiniz.
Kaynak / Source: https://blog.miguelgrinberg.com/post/how-to-host-your-own-email-server