هذا هو إحياء لبرنامج الإرسال المزيف بواسطة Byron Jones (https://www.glob.com.au/sendmail/)، إذا لم تكن بحاجة إلى دعم TLS v1.1 أو v1.2، فيرجى استخدام الإصدار الأصلي، لا يوجد دعم متاح في كلا الإصدارين ولا تتم صيانتهما بشكل نشط.
sendmail.exe هو تطبيق بسيط لوحدة تحكم Windows يحاكي خيار sendmail -t لتسليم رسائل البريد الإلكتروني المنقولة عبر stdin.
الغرض منه هو تسهيل تشغيل تعليمات برمجية Unix التي تحتوي على /usr/lib/sendmail المشفرة كوسيلة لتسليم البريد الإلكتروني أو البرامج التي تستخدم طريقة إرسال البريد الإلكتروني، على سبيل المثال كما يستخدم PHP على Windows.
فهو لا يدعم التسليم المؤجل، ويتطلب خادم SMTP لإجراء التسليم الفعلي للرسائل.
لقد كنت أستخدم برنامج إرسال البريد المزيف منذ عدة سنوات، ولكن عند استخدام خوادم Office 365 smtp، لم يعد TLS v1.0 كافيًا بعد الآن، فهم يحتاجون إلى TLS v1.2، لذلك حاولت إعادة ترجمة المصدر الذي كتبه بايرون جونز المدرجة في الإصدار على موقعه. مع القليل من الكمان وبعض التغييرات الطفيفة، تمكنت من إعادة ترجمة برنامج دلفي 2007، في الإصدار المجتمعي الحالي من منشئ دلفي 10.3 (ريو) من إمباركاديرو. يحتوي على إصدار Indy أحدث، يدعم TLS v1.2 وTLS v1.1+ القسري في رمز الإرسال.
ولتوفير متاعب إعادة ترجمة البريد الإلكتروني المزيف من كود المصدر لأي شخص آخر، قمت بإتاحته على موقع جيثب هذا، بما في ذلك كود المصدر، تمامًا كما هو الحال في الإصدار الأصلي.
قم بتنزيل sendmail.zip من هذا github وقم بفك ضغط محتوياته إلى مجلد مؤقت على نظامك
انسخ sendmail.exe وsendmail.ini وكلا الملفين .dll إلى usrlib على محرك الأقراص المثبت عليه تطبيق unix. على سبيل المثال. إذا كان التطبيق الخاص بك مثبتًا على c:، فيجب نسخ sendmail.exe وsendmail.ini إلى c:usrlibsendmail.exe وc:usrlibsendmail.ini أو دليل آخر إذا كان المسار غير موجود 'غير مضمنة في التطبيق الذي يستخدمه.
تكوين خادم SMTP والمجال الافتراضي في sendmail.ini.
بشكل عام، كل ما عليك فعله هو تثبيت sendmail.exe في usrlib، وسيعمل الكود الموجود الذي يستدعي /usr/lib/sendmail.
إذا كنت تقوم ببرمجة تطبيقات جديدة، فكل ما عليك فعله هو إنشاء رسالة البريد الإلكتروني الخاصة بك برؤوس كاملة، ثم توجيهها إلى "sendmail.exe -t"
مع PHP، مسار sendmail ليس مشفرًا، ويمكن تهيئته في ملف php.ini، لذلك يمكن وضع sendmail.exe وملفاته معًا في أي مكان على النظام، وينص التكوين على "Unix فقط" لخيار sendmail_path، ولكنه يعمل على نظام التشغيل Windows، فهو يتجاوز خيارات Win32 الثلاثة الموجودة فوقه فقط، راجع دليل PHP (https://www.php.net/manual/en/mail.configuration.php#ini.sendmail-path)
ملاحظة: إذا كان خادم SMTP الخاص بك لا يتطلب مصادقة أو تشفير، فيمكنك فقط استخدام معلمات تكوين SMTP وSMPT_PORT لتحديد خادم SMTP، فلن تحتاج إلى sendmail.exe بعد ذلك.
PHP.ini:
[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = localhost
; http://php.net/smtp-port
;smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:sendmailsendmail.exe -t"
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail().
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On
في sendmail.ini، يمكنك تحديد عنوان خادم SMTP ومجموعة اسم المستخدم/كلمة المرور
يقوم Sendmail بتعيين ERORLEVEL على 0 عند نجاحه.
قام الإصدار 28 والإصدارات الأحدث بتعيين مستوى الخطأ على -1 إذا تعذر تسليم البريد الإلكتروني. تم تغيير القيمة لتوفير توافق أفضل مع PHP، والذي يتوقع أن يكون ERRORLEVEL هو -1 عند الفشل.
قم بإلغاء التعليق على إدخال debug_logfile في sendmail.ini وحاول إعادة إرسال رسالة فاشلة. يجب أن يؤدي هذا إلى إنشاء debug.log في نفس الدليل مثل sendmail.exe الذي يعرض نسخة SMTP الكاملة.
يرجى الاطلاع على موقع الإصدارات الأصلية: https://www.glob.com.au/sendmail/
تم إصدار هذا البرنامج بموجب ترخيص bsd: https://www.glob.com.au/sendmail/license.html
تم تضمين تفاصيل الترخيص وكود المصدر الكامل (Delphi 10.3 Rio) في المجلد المصدر في الملف المضغوط وهذا المستودع.