Score:1

iRedMail: นามแฝงโดเมนไม่ทำงานกับเมลภายนอกบางเมล (ตัวกำกับ/punycode)

ธง ke

หลังจากตั้งค่าเซิร์ฟเวอร์ iRedMail สำหรับโดเมนหลักของฉันสำเร็จแล้ว ฉันพยายามเพิ่มโดเมนรองเป็นนามแฝงโดยทำตามขั้นตอนที่นี่: https://docs.iredmail.org/sql.add.alias.domain.html

วิธีนี้ยังไม่ได้ผล ดังนั้นฉันจึงเพิ่มโดเมนรองลงใน /etc/postfix/main.cf:

virtual_alias_domains = โดเมน 2.tld
virtual_alias_maps = แฮช:/etc/postfix/virtual

หมายเหตุ: ฉันไม่ได้ลบรายการ mysql ที่มีอยู่ภายใต้ virtual_alias_maps

และเข้าสู่การแมปใน /etc/postfix/virtual และดำเนินการ "postmap /etc/postfix/virtual" หลังจากนั้น:

@domain2.tld @domain1.tld

สิ่งนี้ทำงานภายในเซิร์ฟเวอร์ [email protected] สามารถส่งไปยัง [email protected] และ user2 จะได้รับจดหมายในกล่องจดหมายของเขา อีเมลภายนอกยังคงมาถึงเมื่อส่งไปยัง [email protected]

น่าเสียดายที่มันใช้ไม่ได้กับเมลภายนอกที่ส่งไปยังโดเมนรอง ใน /var/logs/mail.log ฉันพบบรรทัดต่อไปนี้:

postfix/smtpd[5541]: NOQUEUE: ปฏิเสธ: RCPT จาก mail-oi1-x231.google.com[2607:f8b0:4864:20::231]: 451 4.3.5 <[email protected]>: ที่อยู่ผู้รับถูกปฏิเสธ : ปัญหาการกำหนดค่าเซิร์ฟเวอร์ จาก=<[email protected]> ถึง=<[email protected]> proto=ESMTP helo=<mail-oi1-x231.google.com>

และ:

postfix/smtpd[5644]: คำเตือน: ปัญหาในการพูดคุยกับเซิร์ฟเวอร์ 127.0.0.1:12340: การเชื่อมต่อหมดเวลา

บนพอร์ต 12340 dovecot กำลังฟัง:

dovecot 513 รูท 67u IPv4 17087 0t0 TCP 127.0.0.1:12340 (ฟัง)

ในบันทึก dovecot ของฉัน ฉันพบบรรทัดต่อไปนี้ซ้ำๆ:

dovecot: สถานะโควต้า: ข้อผิดพลาด: สถานะโควต้า: ลูกค้าส่งที่อยู่ผู้รับไม่ถูกต้อง: อักขระไม่ถูกต้องในเส้นทาง

หลังจากการทดสอบเพิ่มเติมกับโฮสต์เมลภายนอกอื่น ๆ ฉันรู้ว่า 2 ใน 4 ของเมลมาถึงเมื่อส่งไปยังโดเมนรอง GMail และ Hotmail ไม่ได้ การแลกเปลี่ยนของบริษัทของฉันและผู้ให้บริการเว็บรายอื่นเข้ามา

และนั่นคือสิ่งที่ฉันติดอยู่ ฉันสงสัยหนึ่งในสองสิ่ง: อาจเป็นเพราะฉันพลาดการกำหนดค่าที่จำเป็น ซึ่งดูเหมือนว่าเป็นไปได้สูง เนื่องจากฉันไม่เคยตั้งค่าเซิร์ฟเวอร์อีเมลบน Debian มาก่อน หรือข้อผิดพลาด dovecot เกิดจากโดเมนรองของฉัน โดเมนรองมีเครื่องหมายเครื่องหมาย (ä/ö/ü) ซึ่งฉันทราบดีว่าอาจทำให้เกิดปัญหาได้ ดังนั้นฉันจึงเป็นเจ้าของโดเมนในรูปแบบ punycode ด้วยเช่นกัน ดังนั้น เมื่อใดก็ตามที่ฉันเพิ่มโดเมนรองที่มีเครื่องหมาย umlaut ในการกำหนดค่า ฉันยังเพิ่มเวอร์ชัน punnycode ของโดเมนนั้นด้วย โดยสมมติว่ามันสามารถแก้ปัญหาใดๆ ในเรื่องนั้นได้

iRedMail/postfix/dovecot/whateverelseisinvolved ดูเหมือนจะทำงานได้ดีกับ punnycode/umlauts ต่อ se ดูเหมือนว่าจะขึ้นอยู่กับผู้ส่ง เนื่องจากอีเมลหายไปเพียงครึ่งเดียว (ผู้ส่งจะไม่ได้รับข้อผิดพลาด) มีใครเดาว่าทำไมหรือบันทึกอะไรที่ฉันสามารถตรวจสอบเพื่อเจาะลึกลงไปกว่านี้ ฉันพลาดที่จะกำหนดค่าบางอย่างที่ชัดเจนหรือไม่

การผลักดันไปในทิศทางที่ถูกต้องจะได้รับการชื่นชมอย่างสูง

ความนับถือ, น้ำมูก

==== ข้อมูลพื้นฐาน ====

  • รุ่น iRedMail: 1.4.0 รุ่น MARIADB
  • ชื่อและเวอร์ชันการแจกจ่าย Linux/BSD: Debian GNU/Linux 10 (บัสเตอร์) - 10.10
  • ฐานข้อมูลที่ใช้: MySQL (MariaDB)
  • เว็บเซิร์ฟเวอร์: Nginx

==== แก้ไข ====

เท่าการตั้งค่าฐาน; หลังจากติดตั้ง Debian 10 ใหม่ทั้งหมด ฉันได้ทำตามขั้นตอนในคู่มือนี้แล้ว https://www.linuxbabe.com/mail-server/debian-10-buster-iredmail-email-server

มีการกล่าวถึงการกำหนดค่าเฉพาะใด ๆ ที่เปลี่ยนแปลงจากคำแนะนำในโพสต์ ฉันได้ออกใบรับรองเพิ่มเติมซึ่งประกอบด้วยโดเมนหลักและโดเมนรองใน punnycode

นี่คือบันทึกต่าง ๆ ในการบูต:

/var/log/mail.log:

14 ส.ค. 14:24:36 น. postfix/postfix-script[1637]: คำเตือน: symlink ออกจากไดเรกทอรี: /etc/postfix/./makedefs.out
14 ส.ค. 14:24:37 น. amavis[573]: เริ่มต้น /usr/sbin/amavisd-new ที่ host.domain1.tld amavisd-new-2.11.0 (20160426), รู้จัก Unicode, LC_ALL="C", LANG="en_US.UTF-8"
14 ส.ค. 14:24:37 น. postfix/postfix-script[1819]: การเริ่มต้นระบบเมล Postfix
14 ส.ค. 14:24:37 น. postfix/master[1821]: daemon เริ่มต้น -- เวอร์ชัน 3.4.14, การกำหนดค่า /etc/postfix
14 ส.ค. 14:24:39 น. amavis[1915]: Net::Server: ไม่ได้กำหนดกลุ่ม ค่าเริ่มต้นเป็น EGID '121 121'
14 ส.ค. 14:24:39 น. amavis[1915]: Net::Server: ไม่ได้กำหนดผู้ใช้ ค่าเริ่มต้นเป็น EUID '113'
14 ส.ค. 14:24:39 น. amavis[1915]: ไม่มีโปรแกรมเสริมสำหรับ .F, พยายาม: ยกเลิกการตรึง, แช่แข็ง -d, ละลาย, fcat
14 ส.ค. 14:24:39 น. amavis[1915]: ไม่มีโปรแกรมเสริมสำหรับ .zoo, ลองแล้ว: zoo, unzoo
14 ส.ค. 14:24:39 น. amavis[1915]: ไม่มีตัวถอดรหัสสำหรับ .F   
14 ส.ค. 14:24:39 น. amavis[1915]: ไม่มีตัวถอดรหัสสำหรับ .zoo 
14 ส.ค. 14:24:39 น. amavis[1915]: การใช้รหัสสแกนเนอร์ av ภายในหลักสำหรับซ็อกเก็ต clamav
14 ส.ค. 14:24:39 น. amavis[1915]: พบเครื่องสแกน av รอง clamav-clamscan ที่ /usr/bin/clamscan

/var/log/dovecot/dovecot.log:

14 ส.ค. 14:24:26 น. dovecot: master: Dovecot v2.3.4.1 (f79e8e7e4) เริ่มต้นขึ้นสำหรับ pop3, imap, sieve, lmtp (ปิดใช้งานการถ่ายโอนข้อมูลหลัก)
14 ส.ค. 14:24:43 น. dovecot: stats: Error: (stats-reader): ไม่ได้ตอบกลับด้วยบรรทัด VERSION ที่ถูกต้อง: EXPORT#011global
14 ส.ค. 14:24:43 น. dovecot: stats: Error: (stats-reader): ไม่ได้ตอบกลับด้วยบรรทัด VERSION ที่ถูกต้อง: EXPORT#011global

grep postfix /var/log/syslog:

14 ส.ค. 14:24:36 น. postfix/postfix-script[1637]: คำเตือน: symlink ออกจากไดเรกทอรี: /etc/postfix/./makedefs.out
14 ส.ค. 14:24:37 น. postfix/postfix-script[1819]: การเริ่มต้นระบบเมล Postfix
14 ส.ค. 14:24:37 น. postfix/master[1821]: daemon เริ่มต้น -- เวอร์ชัน 3.4.14, การกำหนดค่า /etc/postfix

ฉันได้ปิดใช้งานคุณสมบัติโควต้าและเปิดใช้งาน SMTPUTF8 ใน postfix main.cf ของฉันแล้ว ไม่มีการเปลี่ยนแปลงที่น่าสังเกตยกเว้นจากบรรทัดเพิ่มเติมในการบูตใน mail.log:

14 ส.ค. 14:59:46 น. amavis[571]: เริ่มต้น /usr/sbin/amavisd-new ที่ host.domain1.tld amavisd-new-2.11.0 (20160426), รู้จัก Unicode, LC_ALL="C", LANG="en_US.UTF-8"

พฤติกรรมยังคงเหมือนเดิม น่าเสียดาย หลังจากวิเคราะห์บันทึกเพิ่มเติม ฉันรู้ว่าดูเหมือนว่าอีเมลจากผู้ให้บริการที่ผ่านเข้ามาจะถูกส่งผ่าน punycode (แม้ว่าฉันจะส่งมันไปยังโดเมนด้วยเครื่องหมาย umlaut/non-ASCII-char โดยเฉพาะก็ตาม) ในทางกลับกัน GMail ส่งอีเมลไปยังโดเมนที่มีเครื่องหมายเครื่องหมายบน (Non-punycode แม้ว่าฉันจะใช้รูปแบบ punycode ในที่อยู่อีเมลของผู้รับโดยเฉพาะก็ตาม) ดังนั้น ฉันจะต้องสอนเซิร์ฟเวอร์ของฉันให้จัดการอักขระที่ไม่ใช่ ASCII หรือไม่ก็ต้องสอน Google ให้ส่งผ่าน punycode หรือสอนเซิร์ฟเวอร์ของฉันให้แปลเครื่องหมายอัศเจรีย์เป็น punycode เห็นได้ชัดว่าตัวเลือก 2 ไม่ได้อยู่ในตัวเลือก ดังนั้น 1 หรือ 3 ก็คือ

รายการ mail.log จากเมลโฮสต์ที่ไม่ใช่ GMail:

postfix/amavis/smtp[2300]: 4Gn0zh0z4FzLnSJ: to=<[email protected]>, orig_to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=4, delays= 0.1/0/0.01/3.9, dsn=2.0.0, สถานะ=ส่ง (250 2.0.0 จาก MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 ตกลง: เข้าคิวเป็น 4Gn0zm04JHzLxc0)

รายการ mail.log จากเมล GMail:

14 ส.ค. 15:06:44 น. postfix / smtpd [2281]: คำเตือน: ปัญหาในการพูดคุยกับเซิร์ฟเวอร์ 127.0.0.1:12340: หมดเวลาการเชื่อมต่อ
14 ส.ค. 15:06:44 น. postfix/smtpd[2281]: NOQUEUE: ปฏิเสธ: RCPT จาก mail-ot1-x32b.google.com[2607:f8b0:4864:20::32b]: 451 4.3.5 <user@ dömain2.tld>: ที่อยู่ผู้รับถูกปฏิเสธ: ปัญหาการกำหนดค่าเซิร์ฟเวอร์; จาก=<[email protected]> ถึง=<user@dömain2.tld> proto=ESMTP helo=<mail-ot1-x32b.google.com>
SnotMcBooger avatar
ke flag
ขอบคุณสำหรับการป้อนข้อมูล @anx ฉันได้เพิ่มบันทึกจากหลังจากการบู๊ตและหมายเหตุเพิ่มเติม ฉันได้เปิดใช้งานการสนับสนุน SMTPUTF8 ใน postfix เนื่องจากไม่ได้เปิดใช้งาน แต่น่าเสียดายที่ไม่มีการเปลี่ยนแปลง ฉันได้ปิดการใช้งานคุณสมบัติโควต้าแล้ว แต่อาจสังเกตเห็นความแตกต่างในการทำงาน ตามที่ระบุไว้ในโพสต์ ดูเหมือนว่าอีเมลที่ส่งผ่านจะถูกส่งเป็น punycode ซึ่งแตกต่างจากอีเมล gmail ที่จริง ๆ แล้วถูกส่งไปยังโดเมนที่มีอักขระที่ไม่ใช่ ascii อาจมีวิธีแปลเป็น punycode ก่อนดำเนินการต่อไปหรือไม่
SnotMcBooger avatar
ke flag
ขอบคุณสำหรับคำแนะนำ ฉันได้คืนค่าการตั้งค่า SMTPUTF8 แล้ว ฉันได้รีสตาร์ทเซิร์ฟเวอร์อย่างสมบูรณ์หลายครั้งแล้ว อันที่จริง ฉันรีบูทเซิร์ฟเวอร์ก่อนที่จะแยกบันทึกที่ฉันเพิ่มลงในโพสต์ ยังคงรีบูทมัน ผลลัพธ์เหมือนเดิม การหมดเวลาจะเกิดขึ้นกับอีเมลที่ส่งถึง "dömain2.ch" เท่านั้น อีเมลอื่นๆ จะผ่านไปได้ แม้แต่พวก punycode การหมดเวลาเกิดขึ้นที่พอร์ต dovecot แต่เฉพาะเมื่อมีการส่งจดหมายที่มีเครื่องหมายเครื่องหมายบนโดเมน โดยเซิร์ฟเวอร์จดหมายที่ส่งจะไม่แปลงเป็น punycode เช่น google หรือ hotmail โดยทั่วไปแล้วเซิร์ฟเวอร์แลกเปลี่ยนดูเหมือนว่าจะแปลงให้อ่อนแอ
Score:0
ธง fr
anx

เนื่องจากฉันยังไม่เห็นวิธีแก้ปัญหาทั้งหมด (การเขียนที่อยู่ใหม่ใน Postfix อาจใช้ได้ผล แต่อาจเป็นจุดจบที่น่าเศร้าของเรื่องนี้) ฉันจึงรวบรวมขั้นตอนการวินิจฉัยในคำตอบ:

  • ได้รับ มีประสิทธิภาพ การกำหนดค่าเช่นดัมพ์โดยคำสั่ง โพสต์ฟิกซ์ -n และ postfix -M หากเมลเซิร์ฟเวอร์เพื่อให้แน่ใจว่ามีความเข้าใจที่ชัดเจนเกี่ยวกับวิธีการรวมบริการต่างๆ (amavis, เป็นหลัก)

  • ทดสอบ non-ASCII ทีละรายการใน localpart, ในส่วนหัวที่ไม่ใช่ที่อยู่, และในชื่อโดเมน (มี A-Label เข้ารหัสผ่าน Punycode เพื่อเริ่มต้นเช่น xn--และเป็น Unicode ที่มีตัวอักษรที่ไม่ใช่ ASCII โดยตรง)

  • เก็บไว้ SMTPUTF8 ปิดใช้งานใน Postfix - Dovecot ยังไม่รองรับการจัดการเมลที่สามารถรับด้วยวิธีนั้นอย่างสมบูรณ์ และไม่จำเป็นหรือไม่มีประโยชน์ในการแก้ปัญหาใน amavis

  • amavis มี $log_level การตั้งค่า (ใน Debian น่าจะเป็นใน /etc/amavis/conf.d/) นั่น อาจมีค่าเป็นศูนย์เป็นส่วนหนึ่งของคุณ ไอเรดเมล การกระจาย.

  • หากคุณมีตัวเลือกในการเปลี่ยน ให้เรียกใช้ amavis เป็นคิวก่อนหน้า ilter (แทนที่จะเป็น smtp หลังคิว ilter) อาจหรือไม่เปิดเผยข้อผิดพลาดหรือพฤติกรรมที่เป็นประโยชน์มากกว่า

  • amavis แก้ไขปัญหา SQL+Unicode เฉพาะของ mariadb หลังจากเวอร์ชัน 2.11 ที่คุณใช้อยู่ ข้อผิดพลาดที่เป็นประโยชน์อาจอยู่ในบันทึกฐานข้อมูล - หรืออาจถูกตัดออกโดยการเปรียบเทียบสแต็กเดียวกันที่กำหนดค่าด้วยแบ็กเอนด์ postgres ที่เหมือนกันตามหน้าที่ (postgres ไม่แบ่งปันคุณลักษณะ/จุดบกพร่อง Unicode ของ MySQL&MariaDB)

anx avatar
fr flag
anx
ฉันหวังว่ามันจะ * ไม่ใช่ * อีกหนึ่งปัญหา "Unicode แต่ผิด" อีกครั้ง ..

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา