Cloudflare Workers ile Ücretsiz E-posta Sunucusu Kurulumu (Cloud-Mail)

Yandex Mail Alternatifi: Cloudflare Workers ile Ücretsiz Kurumsal E-posta Kurulumu

Yandex Mail for Domain hizmetinin kapanması, Zoho Mail’in ücretsiz planını kısıtlaması ve Google Workspace’in tamamen ücretli hale gelmesiyle birlikte, kendi alan adıyla ücretsiz kurumsal e-posta kullanmak isteyenler için seçenekler oldukça azaldı.

Bu noktada açık kaynaklı Cloud-Mail projesi, Cloudflare altyapısını kullanarak kendi alan adınızla e-posta alıp göndermenize olanak sağlayan güçlü bir alternatif sunuyor.

Bu rehberde Cloud-Mail kullanarak kendi domaininiz üzerinde e-posta adresleri oluşturmayı, gelen e-postaları yönetmeyi, Resend üzerinden e-posta göndermeyi ve sistemi Cloudflare Workers üzerinde yayınlamayı adım adım anlatacağım.

Yandex Mail for Domain Neden Kapandı?

Yandex, alan adına özel e-posta hizmetini Yandex 360 for Business adı altında ücretli bir sisteme dönüştürdü. Mevcut kullanıcılar belirli bir süre ücretsiz kullanmaya devam edebilse de yeni ücretsiz domain kaydı kabul edilmemeye başlandı.

Bunun yanında Türkiye’den zaman zaman yaşanan erişim ve doğrulama sorunları da kullanıcıları alternatif hizmetlere yöneltti.

Mevcut Kurumsal E-posta Alternatifleri

Hizmet Ücretsiz Plan Dezavantaj
Zoho Mail 5 kullanıcı, 5 GB Ücretsiz planda IMAP ve POP desteği bulunmayabilir
Google Workspace Yok Kullanıcı başına aylık ücret
Microsoft 365 Yok Kullanıcı başına aylık ücret
Yandex 360 Yeni kayıt yok Ücretsiz domain kaydı kapalı
ImprovMX Sınırlı Temel olarak e-posta yönlendirme hizmeti
Cloud-Mail Cloudflare limitleri dahilinde ücretsiz Kurulum ve yapılandırma kullanıcıya ait

Cloud-Mail Nedir?

Cloud-Mail, Cloudflare Workers altyapısı üzerinde çalışan açık kaynaklı bir e-posta yönetim projesidir.

Gelen e-postalar Cloudflare Email Routing üzerinden Worker’a aktarılır. E-postalar Cloudflare D1 veritabanında saklanır. Giden e-postalar ise Resend gibi haricî bir e-posta gönderim hizmeti üzerinden iletilir.

Bu yapı sayesinde klasik bir e-posta sunucusu kurmadan kendi alan adınızla web tabanlı bir e-posta sistemi oluşturabilirsiniz.

Öne Çıkan Özellikler

  • Kendi alan adınızla birden fazla e-posta adresi oluşturma
  • Modern ve mobil uyumlu web arayüzü
  • E-posta gönderme ve alma
  • Çoklu kullanıcı desteği
  • Kullanıcı ve rol yönetimi
  • PWA desteği
  • Telegram bildirim entegrasyonu
  • Yapay zekâ destekli doğrulama kodu çıkarma
  • Cloudflare ücretsiz planında kullanılabilme
  • Açık kaynak kodlu yapı

Kurulum İçin Gerekenler

Kuruluma başlamadan önce aşağıdaki hesap ve uygulamalara ihtiyacınız bulunmaktadır:

  • Ücretsiz bir Cloudflare hesabı
  • Cloudflare DNS yönetimine eklenmiş bir alan adı
  • Mail gönderimi için Resend hesabı
  • Bilgisayarınızda Node.js 18 veya üzeri
  • pnpm paket yöneticisi
  • Git

1. Cloud-Mail Projesini İndirin

Terminali veya komut istemini açarak aşağıdaki komutları çalıştırın:

git clone https://github.com/maillab/cloud-mail.git
cd cloud-mail/mail-worker
pnpm install

Bu komutlar Cloud-Mail projesini bilgisayarınıza indirecek ve Worker için gerekli paketleri yükleyecektir.

2. Cloudflare Hesabınıza Giriş Yapın

Wrangler üzerinden Cloudflare hesabınıza giriş yapmak için aşağıdaki komutu çalıştırın:

npx wrangler login

Komutu çalıştırdığınızda tarayıcınız açılacak ve Cloudflare hesabınız için yetkilendirme yapmanız istenecektir.

3. D1 Veritabanı Oluşturun

Cloud-Mail, e-postaları ve kullanıcı bilgilerini saklamak için Cloudflare D1 kullanır.

D1 veritabanını oluşturmak için:

npx wrangler d1 create cloud-mail-db

Komut tamamlandığında terminalde bir database_id gösterilecektir. Bu kimliği daha sonra kullanacağımız için bir yere kaydedin.

4. KV Namespace Oluşturun

Cloudflare KV alanını oluşturmak için aşağıdaki komutu çalıştırın:

npx wrangler kv namespace create kv

Komut çıktısında gösterilen KV kimliğini de kaydedin.

5. wrangler.toml Dosyasını Yapılandırın

mail-worker/wrangler.toml dosyasını bir metin editörüyle açın ve aşağıdaki örneğe göre düzenleyin:

name = "cloud-mail"
main = "src/index.js"
compatibility_date = "2026-08-05"
keep_vars = true

[observability]
enabled = true

[[d1_databases]]
binding = "db"
database_name = "cloud-mail-db"
database_id = "D1_ID_BURAYA"

[[kv_namespaces]]
binding = "kv"
id = "KV_ID_BURAYA"

[ai]
binding = "ai"

[assets]
binding = "assets"
directory = "./dist"
not_found_handling = "single-page-application"
run_worker_first = true

[triggers]
crons = ["0 16 * * *"]

[vars]
domain = ["sizindomain.com"]
admin = "[email protected]"
jwt_secret = "rastgele-guclu-bir-sifre"

[build]
command = "pnpm --prefix ../mail-vue install && pnpm --prefix ../mail-vue run build"

Değiştirmeniz Gereken Alanlar

  • D1_ID_BURAYA: D1 oluştururken verilen veritabanı kimliği
  • KV_ID_BURAYA: KV oluştururken verilen namespace kimliği
  • sizindomain.com: Kullanacağınız alan adı
  • [email protected]: Yönetici e-posta adresi
  • jwt_secret: Tahmin edilmesi zor, uzun ve rastgele bir güvenlik anahtarı
Güvenlik uyarısı: jwt_secret alanında kısa veya kolay tahmin edilebilir bir parola kullanmayın. Büyük ve küçük harf, rakam ve özel karakterlerden oluşan uzun bir değer belirleyin.

6. Cloud-Mail Worker’ını Yayınlayın

Worker’ı Cloudflare üzerine yüklemek ve özel alan adınızı bağlamak için aşağıdaki komutu kullanabilirsiniz:

npx wrangler deploy --domain mail.sizindomain.com

Buradaki mail.sizindomain.com bölümünü kullanmak istediğiniz alt alan adıyla değiştirin.

Örneğin alan adınız ornek.com ise aşağıdaki gibi kullanabilirsiniz:

npx wrangler deploy --domain mail.ornek.com

Deploy işlemi sırasında web arayüzü oluşturulur, Worker Cloudflare’a yüklenir ve destekleniyorsa özel alan adı Worker’a bağlanır.

7. Veritabanını Başlatın

Worker yayınlandıktan sonra veritabanı tablolarını oluşturmak için tarayıcınızdan başlangıç adresini açın:

https://mail.sizindomain.com/api/init/jwt_secret_degeriniz

Buradaki jwt_secret_degeriniz kısmına wrangler.toml dosyasında belirlediğiniz gerçek jwt_secret değerini yazın.

İşlem başarılı olduğunda ekranda success benzeri bir yanıt görmeniz gerekir.

Önemli: Başlangıç adresinde güvenlik anahtarınız yer aldığı için bu bağlantıyı başkalarıyla paylaşmayın ve ekran görüntüsünü yayımlamayın.

8. Cloudflare Email Routing Ayarlarını Yapın

Alan adınıza gelen e-postaların Cloud-Mail Worker’ına ulaşması için Cloudflare Email Routing özelliğini etkinleştirmeniz gerekir.

  1. Cloudflare Dashboard’a giriş yapın.
  2. Cloud-Mail için kullanacağınız alan adını seçin.
  3. Email bölümüne girin.
  4. Email Routing sayfasını açın.
  5. Email Routing özelliğini etkinleştirin.
  6. Cloudflare’ın istediği MX ve TXT kayıtlarını onaylayın.
  7. Catch-all veya yönlendirme kuralı oluşturun.
  8. Hedef olarak Send to a Worker seçeneğini belirleyin.
  9. Worker olarak cloud-mail projesini seçin.

Catch-all etkinleştirildiğinde alan adınızdaki tanımlanmamış adreslere gönderilen e-postalar da Worker tarafından karşılanabilir.

Örneğin aşağıdaki adreslere gelen mesajlar Cloud-Mail tarafından işlenebilir:

9. Resend ile E-posta Gönderimini Ayarlayın

Cloudflare Email Routing temel olarak gelen e-postaların işlenmesini sağlar. Dışarıya e-posta göndermek için Cloud-Mail içerisinde Resend gibi ayrı bir gönderim hizmeti kullanılır.

  1. Resend web sitesine giderek hesap oluşturun.
  2. Resend panelinde Domains bölümünü açın.
  3. Add Domain seçeneğiyle alan adınızı ekleyin.
  4. Resend tarafından verilen DNS kayıtlarını Cloudflare DNS bölümüne ekleyin.
  5. DKIM, SPF ve Return-Path kayıtlarının doğrulanmasını bekleyin.
  6. Domain doğrulandıktan sonra API Keys bölümüne girin.
  7. Yeni bir API anahtarı oluşturun.

Daha sonra Cloud-Mail yönetim paneline giriş yaparak Ayarlar bölümündeki Resend Tokens alanına aşağıdaki formatta API anahtarınızı ekleyin:

{
  "sizindomain.com": "re_BURAYA_API_KEY"
}

Birden fazla alan adı kullanıyorsanız her domain için ayrı bir tanımlama yapabilirsiniz:

{
  "birincidomain.com": "re_BIRINCI_API_KEY",
  "ikincidomain.com": "re_IKINCI_API_KEY"
}
Not: SPF kaydı eklerken alan adınızda daha önce oluşturulmuş başka bir SPF kaydı bulunup bulunmadığını kontrol edin. Aynı alan adı için birden fazla SPF TXT kaydı oluşturmak e-posta teslimat sorunlarına neden olabilir.

10. İlk Yönetici Hesabını Oluşturun

Kurulum tamamlandıktan sonra aşağıdaki adrese gidin:

https://mail.sizindomain.com

Kayıt ekranından yönetici hesabınızı oluşturun. Projenin yapılandırmasına bağlı olarak kullanıcı adını yalnızca admin şeklinde girmeniz yeterli olabilir ve domain otomatik olarak eklenebilir.

Giriş yaptıktan sonra yönetici paneli üzerinden kullanıcıları, e-posta adreslerini ve sistem ayarlarını yönetebilirsiniz.

Cloud-Mail ile Neler Yapabilirsiniz?

Birden Fazla E-posta Adresi Oluşturma

Yönetim panelinden ihtiyacınıza göre farklı e-posta adresleri oluşturabilirsiniz:

Oluşturabileceğiniz adres sayısı, uygulamanın teknik yapısı ile Cloudflare ve gönderim servisinin kullanım limitlerine bağlıdır.

Çoklu Kullanıcı Yönetimi

Ekibinizdeki kişiler için ayrı kullanıcı hesapları oluşturabilir, roller tanımlayabilir ve kullanıcıların erişebileceği alanları sınırlandırabilirsiniz.

Telegram Bildirimleri

Telegram bot token ve chat ID bilgilerini sisteme ekleyerek yeni bir e-posta geldiğinde Telegram üzerinden bildirim alabilirsiniz.

Davet Kodu Sistemi

Kayıt işlemini herkese açık bırakmak yerine davet koduyla sınırlandırabilirsiniz. Böylece yalnızca sizin oluşturduğunuz davet koduna sahip kişiler sisteme kayıt olabilir.

PWA Desteği

Cloud-Mail web arayüzü desteklenen cihazlarda ana ekrana eklenerek mobil uygulamaya benzer şekilde kullanılabilir.

Maliyet Karşılaştırması

Özellik Cloud-Mail Google Workspace Zoho Mail Yandex 360
Aylık ücret Cloudflare limitleri dahilinde ücretsiz Kullanıcı başına ücretli Plana göre ücretli Ücretli
E-posta adresi Yapılandırmaya bağlı Plana bağlı Plana bağlı Plana bağlı
Depolama Cloudflare D1 limitlerine bağlı Plana bağlı Plana bağlı Plana bağlı
Özel alan adı Evet Evet Evet Evet
Web arayüzü Evet Evet Evet Evet
Kaynak kodu kontrolü Evet Hayır Hayır Hayır

Ücretsiz Plan Limitleri

Cloud-Mail’in tamamen limitsiz bir e-posta hizmeti olmadığını unutmamak gerekir. Sistem, kullandığınız Cloudflare ve Resend planlarının limitleri içerisinde çalışır.

Dikkate alınması gereken başlıca limitler şunlardır:

  • Cloudflare Workers günlük istek limiti
  • Cloudflare D1 veritabanı boyutu ve okuma-yazma limitleri
  • Cloudflare KV okuma ve yazma limitleri
  • Cloudflare Email Routing kullanım koşulları
  • Resend günlük ve aylık e-posta gönderim limitleri

Bu limitler zaman içerisinde değişebileceği için kurulum öncesinde Cloudflare ve Resend’in güncel fiyatlandırma sayfalarını kontrol etmeniz önerilir.

Cloud-Mail Kullanmanın Avantajları

  • Ayrı bir VPS veya fiziksel sunucu gerektirmez.
  • Postfix ve Dovecot gibi servislerle uğraşmanız gerekmez.
  • Cloudflare altyapısı üzerinde çalışır.
  • Açık kaynak kodlu olduğu için özelleştirilebilir.
  • Küçük ekipler ve kişisel projeler için düşük maliyetlidir.
  • Web tabanlı modern bir yönetim arayüzü sunar.

Dikkat Edilmesi Gerekenler

Cloud-Mail klasik anlamda eksiksiz bir SMTP, IMAP ve POP3 sunucusunun birebir karşılığı değildir. Sistem temel olarak Cloudflare Email Routing, Workers, D1 ve haricî gönderim servislerinin birlikte çalışmasına dayanır.

Bu nedenle aşağıdaki konuları dikkate almalısınız:

  • Outlook veya Thunderbird gibi uygulamalarda doğrudan IMAP kullanımı desteklenmeyebilir.
  • Gönderim limitleri Resend planınıza bağlıdır.
  • Cloudflare hesabınızın güvenliği doğrudan e-posta sisteminizi etkiler.
  • D1 veritabanı yedeklerinin düzenli olarak alınması önerilir.
  • API anahtarları ve JWT anahtarı kesinlikle paylaşılmamalıdır.
  • Önemli ve kritik kurumsal iletişimlerde ücretli ve SLA sunan hizmetler daha uygun olabilir.

Sonuç

Cloud-Mail, kendi alan adıyla ücretsiz veya düşük maliyetli bir web tabanlı e-posta sistemi kurmak isteyenler için dikkat çekici bir açık kaynak alternatifidir.

Cloudflare Workers sayesinde ayrı bir sunucu kiralamadan e-posta alabilir, D1 üzerinde mesajları saklayabilir ve Resend entegrasyonu üzerinden dışarıya e-posta gönderebilirsiniz.

Özellikle kişisel projeler, test ortamları, küçük işletmeler ve sınırlı e-posta trafiğine sahip ekipler için değerlendirilebilir. Bununla birlikte sistemin Cloudflare ve Resend limitlerine bağlı olduğu, klasik IMAP destekli kurumsal e-posta hizmetleriyle tamamen aynı özellikleri sunmadığı unutulmamalıdır.

Proje bağlantısı: GitHub – maillab/cloud-mail


Bu rehberde anlatılan kurulumu kendi alan adım üzerinde test ederek çalıştığını doğruladım. Kurulum sırasında karşılaştığınız sorunları yorum bölümünden paylaşabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir