تحديد المنفذ البعيد لاستخدام البريد عبر exim4
سؤال
ولقد حصلت على الأسهم نظام ديبيان إحفر، وذلك باستخدام Exim4. المجالات هي في معظمها المحلية ولكن هناك بعض التي هي جهاز التحكم عن بعد. للتعامل مع تسليم البريد البعيد يمكنني استخدام ملف التكوين ديبيان:
/etc/exim4/hubbed_hosts
ويسرد هذا الملف على أسماء النطاقات، وآلات MX عن بعد لتسليم. على سبيل المثال:
example.org: mx.example.com
example.com: mx2.example.com
وإذا نظرنا إلى ملف التكوين exim4 أرى أن هذه تستخدم على النحو التالي:
hubbed_hosts:
debug_print = "R: hubbed_hosts for $domain"
driver = manualroute
domains = "${if exists{CONFDIR/hubbed_hosts}\
{partial-lsearch;CONFDIR/hubbed_hosts}\
fail}"
route_data = ${lookup{$domain}partial-lsearch{CONFDIR/hubbed_hosts}}
transport = remote_smtp
والقضية لدي هي أن <م> بعض م> من المضيفين أنا باستخدام ضرورة أن يكون البريد الخاصة بهم تسليمها إلى منفذ غير قياسي. للأسف لا تعمل ملف ديبيان hubbed_hosts إذا حاولت تغييره لتشمل المنفذ:
example.org: mx1.example.org:2525
example.com: 1.2.3.4.2525
هل من الممكن أن تسمح حيوي الميناء إلى أن تحدد؟
المحلول 2
وكنت اتمنى لشيء أكثر من ذلك بقليل الديناميكية - ويعمل هذا الحل:
port = ${if exists{/etc/exim4/ports.list}\
{${lookup{$domain}lsearch{/etc/exim4/ports.list}\
{$value}{25}}}{25}}
وبعد ذلك قد يكون ملف بسيط قائمة المنافذ على أساس لكل مجال:
example.org: 2525
example.com: 26
نصائح أخرى
وويدعم هذا الواقع افتراضيا دون أي تغيير في التكوين exim4 الخاصة بك.
في hubbed_hosts، يمكنك فصل المضيفين بنقطتين، وقمت بتحديد رقم المنفذ مع مزدوج القولون. EX:
domain1: server1:server2::port:server3
domain2: server1::port
domain3: server1:server2
لمزيد من المعلومات راجع HTTP: / /www.exim.org/exim-html-current/doc/html/spec_html/ch20.html#SECID122
وربما يمكن أن تستخدم مشغل $ {استخراج} لتمكنك من الجمع بين أرقام المنافذ وأسماء المضيف، كما في المثال في سؤالك الأصلي.
وشيء من هذا القبيل (غير مجربة):
route_data = ${extract{1}{:}{${lookup{$domain}partial-lsearch{CONFDIR/hubbed_hosts}}}}
وجعل النقل الجديد الذي يحدد المنفذ
remote_hub_2525:
driver = smtp
port = 2525
ثم قم بإنشاء جهاز التوجيه للمجالات التي تحتاج إلى تسليم غير قياسي
non_standard_hub:
driver = manualroute
domains = example.org : example.com
transport = remote_hub_2525
no_more