trashmail
ذاتيا - استلام رسائل البريد الإلكتروني عبر Web UI
و JSON API
و RSS feed
و Webhook
RSS feed
لكل عنوان بريد إلكترونيJSON API
لدمجها في مشاريعك الخاصة. يمكن استخدامها لأتمتة رسائل البريد الإلكتروني 2FAWebhook
لدمجها في مشاريعك الخاصةPlaintext
، STARTTLS
و TLS on connect
نقطة النهاية | توضيح | مثال الإخراج |
---|---|---|
/ RSS/ [email-address] | يعرض RSS XML لعملاء RSS لتقديم رسائل البريد الإلكتروني | |
/API/RAW/ [email-address]/[id] | إرجاع البريد الإلكتروني الخام للعنوان. تحذير: يمكن أن يكون الإخراج كبيرًا مثل البريد الإلكتروني نفسه ، لذا قد يصل إلى 20 ميجابايت للرسائل ذات المرفقات الكبيرة | |
/API/المرفق [email-address]/[attachment-id] | إرجاع المرفق بنوع التمرير الصحيح كرأس | |
/API/DELETE/ [email-address]/[id] | يحذف رسالة بريد إلكتروني محددة ومرفقاتها | |
/API/DELETEACCOUNT/ [email-address] | يحذف جميع الرسائل ومرفقات حساب البريد الإلكتروني هذا |
نقطة النهاية | توضيح | مثال الإخراج |
---|---|---|
/ JSON/ [email-address] | إرجاع مجموعة من رسائل البريد الإلكتروني المستلمة مع روابط إلى المرفقات والجسم المستند إلى النص المستند إلى البريد الإلكتروني. إذا تم إدخال البريد الإلكتروني ADMIN ، فسيقوم بإرجاع جميع رسائل البريد الإلكتروني لجميع الحسابات | |
/JSON/ [email-address]/[id] | للاطلاع على جميع بيانات بريد إلكتروني تم استلامه ، خذ المعرف من المكالمة السابقة واستطلاع هذا للحصول على الجسم RAW و HTML من البريد الإلكتروني. يمكن أن يكون ضخمًا لأن الجسم يمكن أن يحتوي على جميع المرفقات في Base64 | |
/json/listAccounts | إذا تم تعيين SHOW_ACCOUNT_LIST على صحيح في config.ini ، فستقوم نقطة النهاية هذه بإرجاع مجموعة من جميع عناوين البريد الإلكتروني التي تلقت بريدًا إلكترونيًا واحدًا على الأقل |
فقط قم بتحرير config.ini
يمكنك استخدام الإعدادات التالية
URL
-> عنوان URL الذي سيتم بموجبه استضافة واجهة المستخدم الرسومية. لا لذيذ مائل! مثال: https://trashmail.mydomain.euDOMAINS
-> القائمة المنفصلة للفاصلة من المجالات التي سيتلقى خادم البريد هذا على رسائل البريد الإلكتروني. إنها فقط حتى يمكن لواجهة الويب إنشاء عناوين عشوائيةMAILPORT
-> المنفذ الذي سيستمع إليه SMTP Server الذي يعمل بزاوية Python. Default: 25
ADMIN
-> عنوان بريد إلكتروني (لا يجب وجوده ، فقط يجب أن يكون صالحًا) من شأنه أن يسرد جميع رسائل البريد الإلكتروني لجميع العناوين التي تلقاها الخادم. نوع من الصيدDATEFORMAT
-> كيف ينبغي عرض الطوابع الزمنية على واجهة الويب (Moment.js Syntax)PASSWORD
-> إذا تم تكوينه ، لا يمكن استخدام الموقع وواجهة برمجة التطبيقات دون توفيره عبر النموذج ، أو POST/الحصول على password
متغيرة أو رأس HTTP PWD
(على سبيل المثال: curl -H "PWD: 123456" http://localhost:8080/json...
)ALLOWED_IPS
-> قائمة مفصول فاصلة عن عناوين IPv4 أو IPv6 CIDR المسموح بها باستخدام واجهة مستخدم الويب أو واجهة برمجة التطبيقاتATTACHMENTS_MAX_SIZE
-> بحد أقصى لكل مرفق فردي للبريد الإلكتروني بالبايتMAILPORT_TLS
-> إذا تم ضبطه على شيء أعلى من 0 ، فسيتم استخدام هذا المنفذ لـ TLSC (TLS على الاتصال). مما يعني أن مصادقة النص العادي لن يكون ممكنًا. عادة ما يتم تعيينه على 465
. يحتاج TLS_CERTIFICATE
و TLS_PRIVATE_KEY
إلى العملTLS_CERTIFICATE
-> المسار إلى الشهادة (سلسلة). يمكن أن تكون بالنسبة إلى دليل /python أو مطلقTLS_PRIVATE_KEY
-> مسار إلى المفتاح الخاص للشهادة. يمكن أن تكون بالنسبة إلى دليل /python أو مطلقWEBHOOK_URL
-> إذا تم تعيينه ، فسيقوم بإرسال طلب نشر إلى عنوان URL هذا مع بيانات JSON من البريد الإلكتروني كهيئة. يمكن استخدامها لدمج OpentRashMail في مشاريعك الخاصةADMIN_ENABLED
-> تمكين قائمة المسؤول. الافتراضي false
ADMIN_PASSWORD
-> إذا تم تعيينه ، فاحتاج كلمة المرور هذه للوصول إلى قائمة المسؤول في Docker ، يمكنك استخدام متغيرات البيئة التالية:
بيئة فار | ماذا تفعل | مثال القيم |
---|---|---|
عنوان URL | عنوان URL لواجهة الويب. تستخدمها خلاصة API و RSS | http: // localhost: 8080 |
Discard_unknown | يخبر Mailserver بـ Wether أو عدم حذف رسائل البريد الإلكتروني التي يتم تناولها إلى المجالات التي لم يتم تكوينها | صحيح ، خطأ |
المجالات | المجالات ذات القائمة البيضاء التي سيستمع إليها الخادم. إذا تم ضبط Discard_unknown على خطأ ، فسيتم استخدام هذا فقط لإنشاء رسائل بريد إلكتروني عشوائية في واجهة الويب | |
show_account_list | إذا تم ضبطها على true ، فيمكن سرد جميع الحسابات التي تم استلامها مسبقًا عبر API أو WebInterface | صحيح ، خطأ |
مسؤل | إذا تم تعيينه على عنوان بريد إلكتروني صالح وتم إدخال هذا العنوان في واجهة برمجة التطبيقات أو WebInterface ، فسيعرض جميع رسائل البريد الإلكتروني لجميع الحسابات. نوع الصيد | [email protected] |
DateFormat | سيتم تنسيق التاريخ المستلم في واجهة الويب استنادًا إلى Moment.js Syntax | "mmmm do yyyy ، h: mm: ss a" |
skip_filepermissions | إذا تم تعيينها على true ، فلن تقوم بإصلاح أذونات الملفات لمجلد بيانات التعليمات البرمجية في الحاوية. مفيد لـ DEV المحلي. الافتراضي false | صحيح ، خطأ |
كلمة المرور | إذا تم تكوينه ، فلا يمكن استخدام الموقع و API دون توفيره عبر النموذج ، أو Post/الحصول على password متغيرة أو HTTP Header PWD | yousrstrongpassword |
سمحت | قائمة مفصولة مفصولة بعناوين IPv4 أو IPv6 CIDR المسموح بها باستخدام واجهة مستخدم الويب أو واجهة برمجة التطبيقات | 192.168.5.0/24,2a02:ab:cd:ef::/60,172.16.0.0/16 |
المرفقات _max_size | أقصى حجم لكل مرفق فردي من بريد إلكتروني بالبايت | 2000000 = 2 ميغابايت |
mailport_tls | إذا تم تعيينه على شيء أعلى من 0 ، فسيتم استخدام هذا المنفذ لـ TLSC (TLS على الاتصال). مما يعني أن مصادقة النص العادي لن يكون ممكنًا. عادة ما يتم تعيينه على 465 . يحتاج TLS_CERTIFICATE و TLS_PRIVATE_KEY إلى العمل | 465 |
TLS_Certificate | مسار إلى الشهادة (سلسلة). يمكن أن تكون بالنسبة إلى دليل /python أو مطلق | /certs/cert.pem أو cert.pem إذا كان داخل دليل Python |
TLS_PRIVAL_KEY | الطريق إلى المفتاح الخاص للشهادة. يمكن أن تكون بالنسبة إلى دليل /python أو مطلق | /certs/privkey.pem أو key.pem إذا كان داخل دليل Python |
webhook_url | إذا تم تعيينه ، فسيقوم بإرسال طلب نشر إلى عنوان URL هذا مع بيانات JSON من البريد الإلكتروني كهيئة. يمكن استخدامها لدمج OpentRashMail في مشاريعك الخاصة | https://example.com/webhook |
admin_enabled | يتيح قائمة المسؤول. الافتراضي false | false / true |
admin_password | إذا تم تعيينه ، فاحتاج كلمة المرور هذه للوصول إلى قائمة المسؤول | 123456 |
منذ V1.3.0 TLS و STARTTLS يتم دعمها بواسطة OpentRashMail.
كن على علم بوجود طريقتان لاستخدام TLS مع البريد الإلكتروني
لا تتطلب STARTTLS منفذًا محددًا حيث يبدأ كنص عادي ثم ترقيات إلى TLS إذا أعلن الخادم الأمر "StartTLS" (الذي يقوم به OpentRashMail تلقائيًا إذا تم تكوين إعدادات الشهادة والمفاتيح). نظرًا لأنه يتم تشغيله على MAILPORT
الافتراضي ، فلن تحتاج إلى فتح منافذ أخرى حتى تعمل.
TLS on Connect يلف TLs حول المنافذ المكشوفة ، لذلك لا يمكن التحدث إليها في نص عادي وبالتالي يحتاج إلى منفذ مختلف للعمل. عادة ما يستخدم المنفذ 465 لهذا الغرض.
لكي تعمل TLS ، تحتاج أولاً إلى شهادة تتوافق مع اسم مضيف خادم SMTP. يمكن القيام بذلك باستخدام Lets'encrypt وحتى يعمل مع شهادات Wildcard.
لبيئات الاختبار ، يمكنك إنشاء شهادة عن طريق تشغيل الأمر التالي من داخل مجلد Python:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj ' /CN=localhost '
تحتاج بعد ذلك إلى تعيين الإعدادات لـ MAILPORT_TLS
(غير مطلوب إذا كنت ترغب فقط في دعم StartTLS) و TLS_CERTIFICATE
و TLS_PRIVATE_KEY
.
يحتوي ملف /docs/dev.md على بعض التلميحات حول كيفية تصحيح واتصالات TLS و TLSC. يستخدم الأداة swaks
التي يجب أن تكون قابلة للتطبيق في كل مدير حزمة.
في لوحة DNS ، قم بإنشاء سجل MX لنطاقك يشير إلى عنوان IP الخاص بالخادم الذي يستضيف OpentRashMail.
يسمح لك المثال التالي بإرسال رسائل بريد إلكتروني إلى example.com
mail.example.com. IN A 93.184.216.34
example.com. 14400 IN MX 10 mail.example.com.
سيتيح لك هذا المثال المتقدم استخدام مجال بطاقة Wildcard:
mail.example.com. IN A 93.184.216.34
*.example.com. 14400 IN MX 10 mail.example.com.
هذا بالاشتراك مع خيار التكوين "المجالات" (على سبيل المثال معلمة Docker -e DOMAINS="*.example.com"
[email protected] ، إلخ ..)
بداية بسيطة بدون ثبات
docker run -it -p 25:25 -p 80:80 -e URL= " https://localhost:80 " hascheksolutions/opentrashmail:1
حفظ دليل البيانات على الجهاز المضيف
docker run -p 80:80 -p 25:25 -e URL= " https://localhost:80 " -v /path/on/host/where/to/save/data:/var/www/opentrashmail/data hascheksolutions/opentrashmail:1
مثال كامل مع التشغيل على أنه Daemon ، Pronsistence ، مجال للتوليد التلقائي لرسائل البريد الإلكتروني ، قبول رسائل البريد الإلكتروني فقط للمجالات التي تم تكوينها ، والتنظيف للبريد الأقدم من 90 يومًا
docker run -d --restart=unless-stopped --name opentrashmail -e " DOMAINS=mydomain.eu " -e " DATEFORMAT='D.M.YYYY HH:mm' " -e " DISCARD_UNKNOWN=false " -e " DELETE_OLDER_THAN_DAYS=90 " -p 80:80 -p 25:25 -v /path/on/host/where/to/save/data:/var/www/opentrashmail/data hascheksolutions/opentrashmail:1
إن قلب Open Trashmail هو خادم SMTP الذي يعمل به Python يستمع إلى رسائل البريد الإلكتروني الواردة ويخزنها كملفات JSON. لا يتعين على الخادم معرفة مجال البريد الإلكتروني الصحيح ، فسيتمسك بكل ما يتلقاه. عليك فقط تعريض المنفذ 25 على الويب وتعيين سجل MX لمجالك يشير إلى عنوان IP الخاص بجهازك.