Skip to content

نظام البريد الإلكتروني

يعتمد نظام البريد الإلكتروني في Doggy على Symfony Mailer، ويدعم تكوين عدة صناديق بريد وإدارة القوالب والإرسال غير المتزامن.

نظرة عامة

الملفات ذات الصلة بنظام البريد الإلكتروني:

الملفالوصف
src/Service/MailService.phpخدمة إرسال البريد
src/Service/Security/EmailHtmlSanitizer.phpتصفية أمان HTML
src/Entity/System/EmailConfig.phpتكوين صندوق البريد
src/Entity/System/EmailTemplate.phpقالب البريد
src/Entity/System/EmailLog.phpسجل الإرسال
src/Entity/System/EmailFunctionBinding.phpربط الوظائف

واجهة الإدارة: App\Controller\Admin\EmailConfigController

قوالب البريد

تُخزَّن قوالب البريد في قاعدة البيانات (كيان EmailTemplate) وتدعم التحرير المرئي:

دليل القوالب: templates/admin/email/

  • editor.html.twig: محرر القوالب
  • index.html.twig: قائمة القوالب
  • preview.html.twig: معاينة القوالب

إرسال البريد

يتم الإرسال عبر MailService:

php
use App\Service\MailService;

class NotificationService
{
    public function __construct(private MailService $mailService) {}

    public function sendWelcome(Employee $employee): void
    {
        $this->mailService->send(
            to: $employee->getEmail(),
            subject: '欢迎加入 Doggy',
            template: 'welcome',
            params: [
                'name' => $employee->getName(),
            ]
        );
    }
}

أمان HTML

يقوم EmailHtmlSanitizer بتصفية محتوى HTML قبل الإرسال:

  • إزالة العناصر الخطرة مثل script وiframe وobject
  • الحماية من حقن XSS
  • حماية أمان المستلمين

ربط الوظائف

يربط EmailFunctionBinding وظائف البريد بأحداث النظام لتحقيق الإرسال الآلي:

  • بريد إعادة تعيين كلمة المرور
  • إشعارات تفعيل الحساب
  • إشعارات تنبيهات النظام

التكوين

yaml
# config/packages/mailer.yaml
framework:
  mailer:
    dsn: '%env(MAILER_DSN)%'

مصدر مفتوح برخصة MIT | حقوق النشر © 2026 Doggy