# AyrisMail Central AyrisMail Central, Mailcow altyapısı üzerine inşa edilmiş, **veritabanı gerektirmeyen (Database-less)**, modern ve hızlı bir Webmail ve E-posta Yönetim İstemcisidir. Next.js App Router kullanılarak geliştirilmiştir ve kullanıcı e-posta güvenliğini en üst düzeyde tutmak için şifreleri veritabanında saklamaz; bunun yerine güvenli, şifrelenmiş çerezler (cookies) aracılığıyla doğrudan IMAP ve SMTP sunucularıyla iletişim kurar. ## 🚀 Özellikler - **Modern ve Responsive Arayüz:** Gmail tarzı 3 sütunlu (Klasörler - Liste - Detay) "Glassmorphism" esintili karanlık tema tasarımı. Mobil uyumlu. - **Database-less Mimari:** Kullanıcıların e-posta parolaları veritabanında saklanmaz. Her oturum doğrudan Mailcow IMAP/SMTP üzerinden doğrulanır. - **Çoklu Kiracı (Multi-tenant) Yönetimi:** `.env` üzerinden tanımlanan roller (`SUPER_ADMIN`, `DOMAIN_ADMIN`) ile domain bazlı yetkilendirme. - **Gelişmiş Mail Yönetimi:** - Gelen kutusu, gönderilenler, çöp kutusu ve özel klasörler arası anında senkronizasyon. - Mail okuma, yanıtlama, silme ve taşıma işlemleri. - **Ek Dosya Desteği:** - Gelen maillerdeki ekleri (PDF, Resim, Office dosyaları vb.) indirme ve önizleme. - Yeni mail gönderirken Sürükle-Bırak (Drag & Drop) ile kolay dosya ekleme. - **Güvenli HTML Render:** Gelen e-postalar, potansiyel XSS açıklarına karşı sanitize edilerek güvenli bir `iframe` içerisinde render edilir. ## 🛠️ Teknoloji Yığını - **Frontend & Backend:** Next.js 16 (App Router, Turbopack) - **Stil & Tasarım:** Özel CSS (Tailwind reset üzerine inşa edilmiş modern UI) - **IMAP İstemcisi:** `imapflow` (Klasör okuma, mesaj çekme, taşıma, silme) - **SMTP İstemcisi:** `nodemailer` (Mail gönderimi ve `Sent` klasörüne APPEND işlemi) - **E-posta Ayrıştırma:** `mailparser` (Gelen raw RFC822 verilerini anlamlandırma) - **Kimlik Doğrulama:** NextAuth.js (Custom Credentials Provider) & `iron-session` tarzı şifreli çerezler ## 📦 Kurulum ve Çalıştırma ### Gereksinimler - Node.js 20+ - Çalışan bir Mailcow sunucusu ### 1. Depoyu Klonlayın ```bash git clone https://git.ayris.tech/ayrisdev/webmailserver.git cd webmailserver ``` ### 2. Bağımlılıkları Yükleyin ```bash npm install --legacy-peer-deps ``` ### 3. Çevresel Değişkenleri (.env) Ayarlayın Proje dizininde bir `.env` dosyası oluşturun ve aşağıdaki değerleri kendi sunucunuza göre düzenleyin: ```env # Mailcow API & IMAP/SMTP Sunucusu MAILCOW_API_URL="https://mail.yourdomain.com" MAILCOW_API_KEY="YOUR_MAILCOW_SUPER_ADMIN_API_KEY" # NextAuth Güvenlik NEXTAUTH_URL="http://localhost:3000" AUTH_SECRET="super-secret-32-character-random-string" # IMAP & SMTP Portları (Gerekirse) IMAP_PORT=993 SMTP_PORT=587 # Multi-tenant Kullanıcı Tanımları (DB Kullanılmadığı İçin) USER_0_NAME="Admin User" USER_0_EMAIL="admin@yourdomain.com" USER_0_PASSWORD="admin_password" USER_0_ROLE="SUPER_ADMIN" USER_0_DOMAINS="*" ``` ### 4. Geliştirme Sunucusunu Başlatın ```bash npm run dev ``` Uygulama `http://localhost:3000` adresinde çalışmaya başlayacaktır. ## 🐳 Docker ile Kurulum (Production) Proje, standalone modda production için optimize edilmiş bir `Dockerfile` içerir. Coolify, CapRover veya standart Docker ortamlarında kolayca çalıştırılabilir. ```bash docker build -t ayrismail-central . docker run -p 3000:3000 --env-file .env ayrismail-central ``` ## 🔒 Güvenlik Yaklaşımı - **Veri Saklanmaz:** E-postalar ve şifreler sunucuda barındırılmaz, her istekte Mailcow'dan anlık olarak çekilir. - **TLS/SSL:** IMAP ve SMTP bağlantıları `secure: true` (veya STARTTLS) zorunluluğu ile çalışır. - **XSS Koruması:** E-posta içerikleri `sanitizeHtml` fonksiyonu ile temizlenir ve izole `iframe` sandbox'ı içerisinde gösterilir. --- © 2026 AyrisTech - Tüm hakları saklıdır.