هناك طريقتان لإرسال رسائل البريد الإلكتروني عبر خادم SMTP محلي:
- الاتصال بمنفذ الإرسال والمصادقة عليه، مثل 587 مع STARTTLS أو 465 مع TLS ضمني/فوري => طلب شبكة، يتم تطبيق الفحوصات والقيود عبر
smtpd - استخدام
sendmailأو ما شابه، والذي يستدعي أمرpickupالمحلي (في حالة Postfix)، ولا يقوم بأي اتصال شبكة، ويتجاوز جميع الفحوصات والقيود المكونة لخدمة إرسالsmtpd.
الأخير أبسط وأسرع، ومطبق في أنظمة التشغيل والأطر الشائعة، مثل PHP mailer ومكتبة Ruby mail هذه التي يستخدمها Discourse. ويتم تجاوز المصادقة، ولا تحتاج بيانات الاعتماد النصية العادية إلى تخزينها في أي مكان. أو بعبارة أخرى: لا يتم استخدام خادم SMTP على الإطلاق في هذه الحالة، ولكن فقط عميل SMTP.
أعني نعم، لا ينبغي أن يكون لاتصال منفذ الإرسال أي تأثير كبير على حمل الخادم، مقارنة بما يفعله Discourse بخلاف ذلك. يمكن حل النقطة الأخيرة باستخدام، على سبيل المثال، قاعدة smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject عند منفذ الإرسال، للسماح بالإرسالات من عناوين IP المحلية (الافتراضية، إعداد mynetworks) قبل إجراء أي مصادقة. إذا شوهد الطلب من الحاوية بعنوان IP آخر، فيمكن إضافته إلى mynetworks. أعتقد أن هذا هو ما حدث في حالة الموضوع الذي ربطته من قبل.
سنرى في المرة القادمة التي نقوم فيها بتحديث/إعادة بناء Discourse الخاص بنا، عندما يتم تطبيق إعدادات SMTP المتغيرة. سأبلغ عن كيفية عملها.
ولكن لا يزال من المثير للاهتمام معرفة ما إذا كانت هناك طرق أخرى، وماذا يعني هذا الإعداد “Delivery method”.
يعمل Postfix على المضيف، وليس داخل حاوية، ولكن لن يكون هناك فرق كبير، حيث يظل مصادقة قائمة على الشبكة.
نعم، بعد تفكير، من المنطقي فقط أن sendmail وما شابه من المضيف/الحاوية الأخرى لا يمكن أن تعمل داخل حاوية، لأنها تتطلب وصولاً مباشراً إلى أجزاء واسعة من ملفات Postfix التنفيذية والمكتبات والإعدادات، على ما أعتقد. ما لم يكن هناك نوع من المقبس السحري يمكن ربطه بالحاوية أو شيء من هذا القبيل
.