پیکربندی پایگاه داده (Database Configuration)

سرویس Madmail اکنون از GORM پشتیبانی می‌کند که امکان استفاده از پایگاه داده‌های مختلف و مهاجرت خودکار (Auto Migration) را فراهم می‌سازد.

نکته مهم: به طور پیش‌فرض از SQLite استفاده می‌شود، اما برای مقیاس‌پذیری بالا، استفاده از PostgreSQL توصیه می‌گردد.

SQLite (پیش‌فرض)

ساده‌ترین حالت برای راه‌اندازی سریع. فایل پایگاه داده در مسیر مشخص شده ذخیره می‌شود.

storage.imapsql local_mail {
    driver sqlite3
    dsn ./madmail.db
}

PostgreSQL

برای استفاده از PostgreSQL، ابتدا یک دیتابیس در سرور خود ایجاد کنید (می‌توانید از docker-compose.yml موجود در پروژه استفاده کنید).

نمونه تنظیمات در فایل maddy.conf:

storage.imapsql local_mail {
    driver postgres
    dsn "host=localhost user=test password=test dbname=test port=5432 sslmode=disable"
}

اطلاعات پیش‌فرض در Docker:

MySQL

برای استفاده از MySQL، فرمت DSN به صورت زیر است:

storage.imapsql local_mail {
    driver mysql
    dsn "user:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
}

مهاجرت (Migration)

سرویس به صورت خودکار جداول مورد نیاز را در اولین اجرا ایجاد یا به‌روزرسانی می‌کند. نیازی به اجرای دستورات SQL دستی برای ساخت جداول quotas یا contacts نیست.