Skip to content
تم إنشاء هذه الصفحة وترجمتها بمساعدة الذكاء الاصطناعي. إذا لاحظت أي أخطاء، لا تتردد في المساهمة في تحسينها. تعديل على GitHub

مرجع الإعداد

هذه الصفحة هي المرجع الكامل لجميع خيارات إعداد PRX-Email ومتغيرات البيئة وإعدادات وقت التشغيل.

إعداد النقل

هيكل EmailTransportConfig يُعيّن كلاً من اتصالات IMAP وSMTP:

rust
use prx_email::plugin::{
    EmailTransportConfig, ImapConfig, SmtpConfig, AuthConfig,
    AttachmentPolicy, AttachmentStoreConfig,
};

let config = EmailTransportConfig {
    imap: ImapConfig { /* ... */ },
    smtp: SmtpConfig { /* ... */ },
    attachment_store: Some(AttachmentStoreConfig { /* ... */ }),
    attachment_policy: AttachmentPolicy::default(),
};

إعدادات IMAP

الحقلالنوعالافتراضيالوصف
imap.hostString(مطلوب)اسم مضيف خادم IMAP
imap.portu16(مطلوب)منفذ خادم IMAP (عادةً 993)
imap.userString(مطلوب)اسم مستخدم IMAP
imap.auth.passwordOption<String>Noneكلمة المرور للمصادقة LOGIN
imap.auth.oauth_tokenOption<String>Noneرمز OAuth لـ XOAUTH2

إعدادات SMTP

الحقلالنوعالافتراضيالوصف
smtp.hostString(مطلوب)اسم مضيف خادم SMTP
smtp.portu16(مطلوب)منفذ خادم SMTP (465 أو 587)
smtp.userString(مطلوب)اسم مستخدم SMTP
smtp.auth.passwordOption<String>Noneكلمة المرور لـ PLAIN/LOGIN
smtp.auth.oauth_tokenOption<String>Noneرمز OAuth لـ XOAUTH2

قواعد التحقق

  • imap.host وsmtp.host يجب ألا يكونا فارغَين
  • imap.user وsmtp.user يجب ألا يكونا فارغَين
  • يجب ضبط واحد بالضبط من password أو oauth_token لكل بروتوكول
  • attachment_policy.max_size_bytes يجب أن يكون أكبر من 0
  • attachment_policy.allowed_content_types يجب ألا يكون فارغاً

إعداد التخزين

StoreConfig

الحقلالنوعالافتراضيالوصف
enable_walbooltrueتفعيل وضع WAL لسجل الدفتر
busy_timeout_msu645000مهلة انشغال SQLite بالمللي ثانية
wal_autocheckpoint_pagesi641000الصفحات بين نقاط التحقق التلقائية
synchronousSynchronousModeNormalوضع المزامنة: Full أو Normal أو Off

SQLite Pragmas المطبقة

sql
PRAGMA foreign_keys = ON;
PRAGMA journal_mode = WAL;        -- when enable_wal = true
PRAGMA synchronous = NORMAL;      -- matches synchronous setting
PRAGMA wal_autocheckpoint = 1000; -- matches wal_autocheckpoint_pages

سياسة المرفقات

AttachmentPolicy

الحقلالنوعالافتراضيالوصف
max_size_bytesusize26,214,400 (25 ميغابايت)الحجم الأقصى للمرفق
allowed_content_typesHashSet<String>انظر أدناهأنواع MIME المسموح بها

أنواع MIME المسموح بها افتراضياً

نوع MIMEالوصف
application/pdfمستندات PDF
image/jpegصور JPEG
image/pngصور PNG
text/plainملفات نصية عادية
application/zipأرشيفات ZIP

AttachmentStoreConfig

الحقلالنوعالافتراضيالوصف
enabledbool(مطلوب)تفعيل استمرارية المرفقات
dirString(مطلوب)الدليل الجذر للمرفقات المخزّنة

أمان المسار

يُتحقق من مسارات المرفقات ضد هجمات اجتياز الدليل. أي مسار يُحلّ خارج جذر dir المُعيَّن مرفوض، بما فيها الهروب القائم على الروابط الرمزية.

إعداد منشئ المزامنة

SyncRunnerConfig

الحقلالنوعالافتراضيالوصف
max_concurrencyusize4الحد الأقصى للمهام لكل دورة تشغيل
base_backoff_secondsi6410التراجع الأولي عند الفشل
max_backoff_secondsi64300التراجع الأقصى (5 دقائق)

متغيرات البيئة

إدارة رمز OAuth

المتغيرالوصف
{PREFIX}_IMAP_OAUTH_TOKENرمز وصول IMAP OAuth
{PREFIX}_SMTP_OAUTH_TOKENرمز وصول SMTP OAuth
{PREFIX}_IMAP_OAUTH_EXPIRES_ATانتهاء صلاحية رمز IMAP (بالثواني Unix)
{PREFIX}_SMTP_OAUTH_EXPIRES_ATانتهاء صلاحية رمز SMTP (بالثواني Unix)

البادئة الافتراضية هي PRX_EMAIL. استخدم reload_auth_from_env("PRX_EMAIL") لتحميلها في وقت التشغيل.

مكوّن WASM

المتغيرالافتراضيالوصف
PRX_EMAIL_ENABLE_REAL_NETWORKغير مضبوط (معطّل)اضبطه على 1 لتفعيل IMAP/SMTP الحقيقي من سياق WASM

حدود API

الحدالقيمةالوصف
الحد الأدنى للقائمة/البحث1الحد الأدنى لمعامل limit
الحد الأقصى للقائمة/البحث500الحد الأقصى لمعامل limit
تقطيع رسائل التصحيح160 حرفاًرسائل تصحيح المزوّد تُقطَّع
طول مقتطف الرسالة120 حرفاًمقتطفات الرسائل المولَّدة تلقائياً

رموز الأخطاء

الرمزالوصف
Validationفشل تحقق المدخلات (حقول فارغة، حدود خارج النطاق، ميزات غير معروفة)
FeatureDisabledعملية محظورة بعلامة ميزة
Networkخطأ اتصال أو بروتوكول IMAP/SMTP
Providerمزوّد البريد الإلكتروني رفض العملية
Storageخطأ قاعدة بيانات SQLite

ثوابت صندوق الصادر

الثابتالقيمةالوصف
أساس التراجع5 ثوانٍالتراجع الأولي لإعادة المحاولة
صيغة التراجع5 * 2^retriesنمو أسي
الحد الأقصى لإعادة المحاولةغير محدودمحدود بنمو التراجع
مفتاح الأدواتoutbox-{id}-{retries}Message-ID حتمي

علامات الميزات

العلامةالوصفمستوى المخاطرة
inbox_readقائمة الرسائل وقراءتهامنخفض
inbox_searchالبحث في الرسائل بالاستعلاممنخفض
email_sendإرسال رسائل بريد إلكتروني جديدةمتوسط
email_replyالرد على رسائل بريد إلكتروني موجودةمتوسط
outbox_retryإعادة محاولة رسائل صندوق الصادر الفاشلةمنخفض

التسجيل

يُخرج PRX-Email سجلات منظمة إلى stderr بالتنسيق:

[prx_email][structured] {"event":"...","account":...,"folder":...,"message_id":...,"run_id":...,"error_code":...}
[prx_email][debug] context | details

الأمان

  • رموز OAuth وكلمات المرور ومفاتيح API لا تُسجَّل أبداً
  • عناوين البريد الإلكتروني تُخفى في سجلات التصحيح (مثلاً a***@example.com)
  • رسائل تصحيح المزوّد تُعقَّم: رؤوس التفويض تُخفى والمخرجات تُقطَّع إلى 160 حرفاً

الخطوات التالية

Released under the Apache-2.0 License.