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