Files
webmailserver/README.md

91 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.