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.