Cloudflare ve Gmail ile Kendi Domain'inden Ücretsiz E-posta
E-posta gönderimlerini custom domain ile yapmak daha profesyonel duruyor. Hatta çoğu hosting firması bunu bir artı özellik olarak sunuyor. Ama kendi e-posta sunucunu kurmak ve bununla uğraşmak gerçekten külfet. İşin içine SPF kaydı, domain doğrulama, hatta reverse DNS giriyor. MX kaydı da var bu işlerin. Yani mailin düzgün teslim edilsin istiyorsan uğraşacağın bir sürü ayar var.
Çoğu firma bunları senin yerine otomatik hallediyor tabii. Ama custom bir e-posta servisi istersen bu challenge'lar karşına çıkıyor.
Her neyse. Son dönemde web sitemi statik tutmaya karar verdim, admin panelim yok.
Özetle arkada sürekli çalışan bir hosting ya da VPS de yok, dolayısıyla sunucu
masrafım olmuyor. E-posta gönderimini kurumsal kimlik/imaj açısından nasıl
çözerim diye araştırınca Gmail'de başka bir kişi olarak mail gönderebildiğini
gördüm. Zaten Cloudflare kullanırken mail forwarding yapıyordum: mesela
[email protected]'a mail atarsanız benim şahsi hesabıma, [email protected]'a
düşüyor.
Şimdi gelin hep beraber bu ayarları nasıl yaptığımızı anlatmaya devam edelim.
Ön koşullar
- Domain'in DNS'i Cloudflare'de yönetiliyor olmalı (nameserver'lar Cloudflare'e bakıyor olacak).
- Bir Gmail hesabı.
- Gmail hesabında 2 adımlı doğrulama (2FA) açık. App password üretmek için bu şart, sonra değineceğim.
Adım 1: Cloudflare Email Routing ile mail almak
Cloudflare dashboard'da domain'ini seç, sol menüden Email > Email Routing'e gir. İlk kez açıyorsan seni bir kurulum akışına alıyor.
İki şey yapıyorsun:
-
Destination address ekle. Maillerin nereye düşeceğini söylüyorsun, yani kendi Gmail adresin (
[email protected]). Cloudflare buraya bir doğrulama maili gönderiyor, linke tıklayıp adresi onaylıyorsun. Onaylamadan yönlendirme çalışmaz. -
Routing kuralı ekle. Örneğin
[email protected]'a gelen her şey[email protected]'a gitsin. İstersen tek tek adres kuralı yazarsın, istersen catch-all açarsın (domain'e gelen ne varsa hepsi tek kutuya). Catch-all pratik ama spam'i de topluyor, ona göre.
Email Routing'i enable edince Cloudflare senin adına otomatik olarak gerekli DNS kayıtlarını ekliyor. Elle uğraşmana gerek yok, ama ne eklendiğini bilmek iyi:
- Üç tane MX kaydı (
route1.mx.cloudflare.net,route2...,route3...şeklinde, farklı öncelik değerleriyle). Bunlar "bu domain'in maili buraya gelsin" diyen kayıtlar. - Bir SPF kaydı (TXT):
v=spf1 include:_spf.mx.cloudflare.net ~all. - Bir de DKIM kaydı (TXT,
cf2024-1._domainkey...gibi). Bu Cloudflare'in kendi mail yolu için imza kaydı; Gmail'den giden mailde işe yaramıyor, ona aşağıda "Sınırlar" bölümünde değineceğim.
Bu kadar. Artık [email protected]'a gelen mailler Gmail'ine düşüyor. Test
et: başka bir hesaptan bu adrese bir mail at, Gmail'e geliyor mu bak.
Adım 2: Gmail app password üretmek
Şimdi giden tarafa geliyoruz. Gmail'in normal şifresiyle SMTP'ye bağlanamıyorsun, Google bunu reddediyor. Onun yerine app password denen 16 karakterlik özel bir şifre üretiyorsun.
Bunun ön koşulu 2FA'nın açık olması. 2FA kapalıysa app password ekranı hiç görünmüyor.
- Google hesabına gir: Google Account > Security.
- 2 adımlı doğrulama açık değilse önce onu aç.
- Ardından App passwords bölümüne git (arama kutusuna "app passwords" yazarsan direkt bulursun).
- Yeni bir app password oluştur, bir isim ver (mesela "Gmail SMTP").
- Google sana boşluklu görünen 16 karakterlik bir kod veriyor
(
abcd efgh ijkl mnopgibi). Bu kodu bir yere kaydet, ekrandan çıkınca bir daha göstermiyor.
Burada bir nokta var: Google şifreyi araya boşluk koyarak gösteriyor ama SMTP ayarına girerken bu boşlukları silerek, bitişik girmen gerekiyor. Adım 3'te SMTP server bilgilerini doldururken buna dikkat et, yoksa şifre kabul edilmiyor.
Adım 3: Gmail'e custom adresi tanıtmak (Send mail as)
Son adım, Gmail'e "ben bu adresle de gönderebilirim" demek.
- Gmail > Settings (dişli) > See all settings > Accounts and Import.
- Send mail as bölümünde Add another email address'e tıkla.
- Ad ve göndermek istediğin adresi gir:
[email protected]. - Treat as an alias kutusu çıkıyor. Bunu işaretli bırakabilirsin; işaretini kaldırırsan alıcı tarafında "on behalf of" gibi bir ibare çıkabiliyor. İlk kurulumda işaretli bırakmak en temiz sonucu veriyor.
- Sonraki ekranda SMTP bilgilerini istiyor:
SMTP Server : smtp.gmail.com
Port : 465 (SSL) ya da 587 (TLS)
Username : [email protected] (tam Gmail adresi, sadece "erdincyasan" değil)
Password : ürettiğin 16 haneli app password (boşluksuz, bitişik gir)
- Kaydedince Google
[email protected]'a bir doğrulama kodu yolluyor. Bu mail Adım 1 sayesinde Gmail'ine düşüyor. Koddaki linke tıkla ya da kodu gir.
Bittiğinde Gmail'de yeni mail yazarken "From" alanından [email protected]'u
seçebiliyorsun. Gelen de Gmail'de, giden de Gmail'de. Tek kuruş ödemedin.
Takıldığın yer: 535-5.7.8 Username and Password not accepted
Adım 3'te SMTP kaydederken en çok bu hatayı alıyorsun. Sebepleri sırasıyla:
- Normal Gmail şifreni girmişsin. App password kullanman lazım.
- 2FA kapalı. App password üretemeyeceğin için zaten yanlış bir şey giriyorsun.
- Username eksik.
erdincyasandeğil, tam adres:[email protected]. - App password'un boşluklarını silmemişsin. Google kodu
abcd efgh ijkl mnopgibi boşluklu gösteriyor; SMTP'ye bitişik (abcdefghijklmnop) girmen gerekiyor. - Kopyalarken görünmez karakter kaçmış. App password'u elle, dikkatli gir.
Sınırlar (dürüst olmak gerekirse)
Bu kurulum bedava ve işini görüyor ama sihir değil:
- Gerçek bir mailbox değil. Cloudflare tarafında mail saklanmıyor, sadece forward. Gmail'in silersen o mail gitti.
- Giden mail teknik olarak Gmail sunucusundan çıkıyor. Bu yüzden SPF/DKIM hizalaması (alignment) domain'inle tam örtüşmüyor; header'da Gmail izleri kalıyor. Kişisel/küçük kullanım için sorun değil, ama kurumsal bir mail altyapısı arayan biri için yeterli değil.
- Ciddi gönderim hacmin varsa ya da teslimat garantisi önemliyse, ayrı bir mail sağlayıcısı (Zoho, Google Workspace gibi) ya da transactional bir SMTP servisi daha doğru olur.
Ama "domain'imden profesyonel görünen bir adresim olsun, para ödemeyeyim" diyorsan bu ikili tam da o iş için.