ไม่กี่ปีที่ผ่านมา ซอฟต์แวร์เซิร์ฟเวอร์อีเมลฟรีเพียงตัวเดียวที่มีอยู่ในระบบ Linux คือ Sendmail อย่างไรก็ตาม เนื่องจากข้อบกพร่องของ Sendmail นักพัฒนาบางรายจึงได้พัฒนาซอฟต์แวร์เซิร์ฟเวอร์อีเมลอื่นๆ อีกหลายตัว ปัจจุบันมีตัวเลือกมากมายสำหรับเซิร์ฟเวอร์อีเมลฟรีหรือ MTA (Mail Transfer Agent) ที่ทำงานในสภาพแวดล้อม Linux ตัวเลือกที่พบบ่อย ได้แก่ Sendmail, Qmail, Postfix, exim, Zmailer เป็นต้น บทความนี้หวังที่จะอธิบายรายละเอียดเกี่ยวกับลักษณะของ MTA หลักหลายๆ ตัวในสภาพแวดล้อม Linux ที่มีผลกระทบค่อนข้างมาก และวิเคราะห์และเปรียบเทียบข้อดีและข้อเสียทีละรายการ เพื่อให้ผู้ใช้สามารถมีทางเลือกเมื่อเลือก MTA ฟรีใน Linux สิ่งแวดล้อมตาม.
โพสต์ฟิกซ์
Postfix เป็นผลิตภัณฑ์ของโครงการซอฟต์แวร์ฟรีที่ได้รับทุนจาก IBM และพัฒนาโดย Wietse Venema มีวัตถุประสงค์เพื่อให้ผู้ใช้มีตัวเลือกเมลเซิร์ฟเวอร์นอกเหนือจาก sendmail Postfix มุ่งมั่นที่จะรวดเร็ว ง่ายต่อการจัดการ ให้ความปลอดภัยมากที่สุดเท่าที่จะเป็นไปได้ และในขณะเดียวกันก็พยายามรักษาความเข้ากันได้กับเซิร์ฟเวอร์เมล sendmail เพื่อให้สอดคล้องกับพฤติกรรมการใช้งานของผู้ใช้ เริ่มแรก Postfix ได้รับการเผยแพร่ภายใต้ชื่อ VMailer แต่ต่อมาได้เปลี่ยนชื่อเป็น Postfix เนื่องจากเหตุผลด้านเครื่องหมายการค้า
เป้าหมายการออกแบบหลัก
เป้าหมายของโครงการ Postfix คือการใช้เมลเซิร์ฟเวอร์ที่ให้ทางเลือกแก่ผู้ใช้ในการส่งเมล เป้าหมายการออกแบบประกอบด้วย:
ในแง่ของประสิทธิภาพ Postfix นั้นเร็วกว่าผลิตภัณฑ์เซิร์ฟเวอร์ที่คล้ายกันมากกว่าสามเท่า คอมพิวเตอร์เดสก์ท็อปที่ติดตั้ง Postfix สามารถส่งและรับจดหมายได้หลายล้านฉบับต่อวัน การออกแบบ Postfix ใช้เทคนิคการออกแบบเว็บเซิร์ฟเวอร์เพื่อลดค่าใช้จ่ายในการสร้างกระบวนการ และใช้เทคนิคการเพิ่มประสิทธิภาพการเข้าถึงไฟล์อื่นๆ เพื่อปรับปรุงประสิทธิภาพในขณะเดียวกันก็รับประกันความน่าเชื่อถือของซอฟต์แวร์
ความเข้ากันได้ Postfix ได้รับการออกแบบโดยคำนึงถึงความเข้ากันได้ของ Sendmail เพื่อให้การโอนย้ายง่ายขึ้น Postfix รองรับไฟล์ /var[/spool] /mail, /etc/aliases, NIS และ ~/.forward อย่างไรก็ตาม เพื่อให้มั่นใจถึงความเรียบง่ายของการจัดการ Postfix จึงไม่รองรับไฟล์การกำหนดค่า sendmail.cf
ความปลอดภัยและความทนทาน Postfix ได้รับการออกแบบมาเพื่อให้มั่นใจถึงความน่าเชื่อถือของโปรแกรมแม้ภายใต้ภาระที่มากเกินไป เมื่อไม่มีพื้นที่ว่างหรือไม่มีหน่วยความจำในระบบไฟล์ในเครื่อง Postfix จะยอมแพ้โดยอัตโนมัติ แทนที่จะพยายามทำให้สถานการณ์แย่ลงอีกครั้ง
ความยืดหยุ่น Postfix มีโครงสร้างประกอบด้วยโมดูลย่อยขนาดเล็กมากกว่าสิบโมดูล แต่ละโมดูลย่อยทำงานเฉพาะให้เสร็จสิ้น เช่น การรับข้อความผ่านโปรโตคอล SMTP การส่งข้อความ การส่งข้อความในเครื่อง การเขียนที่อยู่ใหม่ เป็นต้น เมื่อมีความต้องการเฉพาะเกิดขึ้น โมดูลเวอร์ชันใหม่สามารถใช้เพื่อแทนที่โมดูลเก่าโดยไม่ต้องอัปเดตโปรแกรมทั้งหมด และยังปิดฟีเจอร์ได้ง่ายอีกด้วย
ความปลอดภัย. Postfix ใช้การป้องกันหลายชั้นเพื่อปกป้องระบบภายในเครื่องจากผู้โจมตี เกือบทุก Postfix daemon สามารถทำงานภายใต้ chroot ที่มีสิทธิ์ต่ำแบบตายตัว ไม่มีเส้นทางโดยตรงระหว่างเครือข่ายและโปรแกรมการจัดส่งในพื้นที่ที่ไวต่อความปลอดภัย - การโจมตี ผู้โจมตีจะต้องบุกโจมตีก่อน ผ่านโปรแกรมอื่นๆ มากมายก่อนที่เขาจะสามารถเข้าถึงระบบภายในเครื่องได้ Postfix ไม่เชื่อถือเนื้อหาของไฟล์คิวหรือข้อความ IPC ของตัวเองอย่างแน่นอนเพื่อป้องกันการปลอมแปลง Postfix จะกรองข้อความก่อนที่จะส่งออกข้อความที่ผู้ส่งให้ไว้ และโปรแกรม Postfix ไม่มี set-uid
คุณสมบัติบางอย่างของ Postfix
รองรับโดเมนการรับส่งข้อมูลหลายโดเมน: sendmai รองรับการส่งต่อข้อความระหว่างอินเทอร์เน็ต, DECnet, X.400 และ UUCP Postfix ได้รับการออกแบบให้มีความยืดหยุ่นและไม่ต้องใช้โดเมนเสมือน (โดเมนภาพ) หรือนามแฝงเพื่อให้สามารถส่งต่อประเภทนี้ได้ อย่างไรก็ตาม ในรุ่นแรกๆ รองรับเฉพาะ STMP และการสนับสนุนที่จำกัดสำหรับ UUCP แต่สำหรับผู้ใช้ภาษาจีน การสนับสนุนสำหรับโดเมนการส่งข้อมูลหลายรายการนั้นไม่มีความหมาย
โดเมนเสมือน: ในกรณีทั่วไปส่วนใหญ่ การเพิ่มการรองรับโดเมนเสมือนจำเป็นต้องเปลี่ยนตารางค้นหา Postfix เมลเซิร์ฟเวอร์อื่นๆ มักต้องการนามแฝงหรือการเปลี่ยนเส้นทางหลายระดับเพื่อให้บรรลุผลนี้
การควบคุม UCE (UCE, อีเมลเชิงพาณิชย์ที่ไม่พึงประสงค์): Postfix สามารถจำกัดโฮสต์ที่ได้รับอนุญาตให้ส่งต่ออีเมลผ่านตัวมันเอง และรองรับการจำกัดอีเมลที่ได้รับอนุญาตให้เข้าถึง Postfix ใช้ฟังก์ชันการควบคุมตามปกติ: บัญชีดำ, การค้นหา RBL, การตรวจสอบ DNS ของ HELO/ผู้ส่ง ขณะนี้ยังไม่มีการใช้การกรองตามเนื้อหา
มุมมองตาราง: Postfix ไม่ได้ใช้ภาษาการเขียนที่อยู่ใหม่ แต่ใช้มุมมองตารางแบบขยายเพื่อใช้ฟังก์ชันการเขียนที่อยู่ใหม่ ตารางสามารถอยู่ในรูปแบบไฟล์ dbm หรือ db ในเครื่องได้ [ตัดหน้า]
สถาปัตยกรรม Postfix และการเปรียบเทียบกับ Sendmail
Postfix เป็นสถาปัตยกรรมที่ใช้กระบวนการกึ่งอาศัยและทำงานร่วมกันได้ แต่ละกระบวนการทำงานเฉพาะให้เสร็จสิ้นโดยไม่มีความสัมพันธ์แบบอนุพันธ์ของกระบวนการเฉพาะ (ความสัมพันธ์ระหว่างพ่อแม่และลูก) นอกจากนี้ กระบวนการอิสระเพื่อทำหน้าที่ที่แตกต่างกันอย่างสมบูรณ์ยังมีการแยกได้ดีกว่าโปรแกรม "เสาหิน" นอกจากนี้ วิธีการนำไปใช้นี้มีข้อได้เปรียบที่แต่ละบริการ เช่น การเขียนที่อยู่ใหม่ สามารถใช้ได้กับส่วนประกอบ Postfix ใดๆ โดยไม่ต้องเสียค่าใช้จ่ายในการสร้างกระบวนการ แต่ต้องเขียนที่อยู่ใหม่เท่านั้น แน่นอนว่า Postfix ไม่ใช่เพียงวิธีเดียวเท่านั้น ก็ใช้วิธีนี้
Postfix ได้รับการปรับใช้ในลักษณะนี้: เซิร์ฟเวอร์หลักประจำถิ่นจะรัน Postfix daemon ตามคำสั่ง และ daemon จะทำหน้าที่ต่างๆ ให้เสร็จสิ้น เช่น การส่งหรือรับข้อความเมลเครือข่าย การส่งอีเมลในเครื่อง และอื่นๆ จำนวนของกระบวนการ daemon ถูกกำหนดโดยพารามิเตอร์การกำหนดค่า และจำนวนครั้งที่กระบวนการ daemon รัน (เวลาที่นำมาใช้ใหม่) จะถูกกำหนดตามการกำหนดค่า เมื่อเวลาว่างถึงขีดจำกัดที่ระบุโดยพารามิเตอร์การกำหนดค่า กระบวนการนั้นจะตายโดยอัตโนมัติ . วิธีการนี้จะช่วยลดค่าใช้จ่ายในการสร้างกระบวนการได้อย่างมาก แต่ยังคงรักษาการแยกส่วนที่ดีระหว่างแต่ละกระบวนการ
เป้าหมายการออกแบบของ Postfix คือการทดแทน Sendmail ด้วยเหตุนี้ หลายส่วนของระบบ Postfix เช่น โปรแกรมการจัดส่งในเครื่อง สามารถแทนที่ได้อย่างง่ายดายด้วยการแก้ไขและแก้ไขไฟล์การกำหนดค่า เช่น inetd
แกนหลักของ Postfix ได้รับการนำไปใช้โดยโปรแกรมกึ่งผู้อยู่อาศัยมากกว่าสิบโปรแกรม ด้วยเหตุผลด้านการรักษาความลับ กระบวนการ Postfix เหล่านี้จะสื่อสารระหว่างกันผ่านซ็อกเก็ต Unix หรือ FIFO ภายใต้ไดเร็กทอรีที่ได้รับการป้องกัน แม้ว่าวิธีการนี้จะรับประกันการรักษาความลับ แต่กระบวนการ Postfix ไม่ได้เชื่อถือข้อมูลที่ได้รับด้วยวิธีนี้โดยสุ่มสี่สุ่มห้า
มีการจำกัดจำนวนข้อมูลที่ถ่ายโอนระหว่างกระบวนการ Postfix ในหลายกรณี ข้อมูลเดียวที่มีการแลกเปลี่ยนระหว่างกระบวนการ Postfix คือชื่อไฟล์คิวและรายชื่อผู้รับ หรือข้อมูลสถานะบางอย่าง เมื่อข้อความเมลถูกบันทึกลงในไฟล์ ข้อความนั้นจะยังคงอยู่จนกว่าโปรแกรมส่งอีเมลจะอ่าน
Postfix ใช้มาตรการทั่วไปเพื่อหลีกเลี่ยงการสูญเสียข้อมูล: บันทึกข้อมูลทั้งหมดลงดิสก์โดยการเรียกฟลัชและ fsync() ก่อนที่จะรับการตอบรับ ตรวจสอบผลลัพธ์การเรียกของระบบทั้งหมดเพื่อหลีกเลี่ยงสภาวะข้อผิดพลาด
คนส่วนใหญ่ที่สร้างเมลเซิร์ฟเวอร์จะเลือก sendmail ถ้าพูดตามตรง sendmail เป็น MTA (Mail Transfer Agent) ที่ดี เมื่อได้รับการพัฒนาครั้งแรก การออกแบบของ Eric Allman มุ่งเน้นไปที่ความสำเร็จของการส่งเมลเป็นหลัก น่าเสียดายที่ Sendmai ได้รับการพัฒนาโดยไม่คำนึงถึงปัญหาด้านความปลอดภัยที่อาจพบในสภาพแวดล้อมอินเทอร์เน็ตมากนัก Sendmail สามารถทำงานได้ในฐานะผู้ใช้รูทบนระบบส่วนใหญ่เท่านั้น ซึ่งหมายความว่าช่องโหว่ใดๆ อาจส่งผลกระทบร้ายแรงตามมาได้ นอกเหนือจากปัญหาเหล่านี้แล้ว Sendmail ยังทำงานได้ดีภายใต้ภาระงานที่สูงอีกด้วย
ความปลอดภัย
ไม่จำเป็นต้องรัน Postfix ในฐานะรูท แต่ต้องการเพียงโปรแกรมหลักเท่านั้นจึงจะทำงานในฐานะรูท ซึ่งสร้างกระบวนการเพื่อจัดการการเข้าถึง การส่งจดหมายขาออก และการส่งเมลในเครื่อง ด้วยการใช้ชุดส่วนประกอบแบบโมดูลาร์ แต่ละงานจะถูกรันโดยโปรแกรมที่แยกจากกัน (ทำให้การตรวจสอบง่ายขึ้น) ตัวอย่างเช่น อีเมลขาออกจะถูกยกเลิกการโหลดไปยังไดเร็กทอรีคิว โดยที่โปรแกรม "pcikup" จะดึงอีเมลและส่งต่อไปยังโปรแกรม "ล้างข้อมูล" จากนั้นจะส่งอีเมลไปที่ "trivial-rewrite" ซึ่งมีหน้าที่ในการประมวลผล ส่วนหัวของอีเมล สุดท้ายนี้ หากจุดประสงค์ของเมลคือระบบอื่นจะส่งเมลไปที่โปรแกรม "smtp" และเมื่อเปรียบเทียบกับ Sendmail แล้ว Postfix ยังง่ายกว่าในการตั้งค่าสภาพแวดล้อม chroot'ed ซึ่งสามารถทำได้ง่ายๆ โดยการแก้ไขไฟล์ master.cf (โดยปกติจะอยู่ใน /etc/postfix) และ Postfix จะถูก chrooted ไปยังไดเร็กทอรีคิวที่มันกำหนด (โดยปกติจะอยู่ใน /var/spool/postfix) คุณยังสามารถตั้งค่าขีดจำกัดกระบวนการได้อีกด้วย สำหรับโมดูล Postfix เดียวใน master.cf ผู้ใช้สามารถจำกัดว่าผู้ใช้รายใดที่ Postfix จะทำงาน โดยทั่วไปจะทำงานในฐานะผู้ใช้ "postfix" (ตามหลักการแล้วผู้ใช้รายนี้จะคล้ายกับไม่มีใครของ Apache) ข้อดีที่สำคัญอีกประการหนึ่งของ Postfix คือความชัดเจนและความเข้าใจง่ายของไฟล์การกำหนดค่า
การเปรียบเทียบกับระบบ Sendmail Mail เช่น sendmail ได้รับการออกแบบและใช้งานตามโครงสร้างบล็อกเดียว โปรแกรม "บล็อกเดียว" นี้ใช้งานฟังก์ชันทั้งหมด แน่นอนว่าโครงสร้างนี้อำนวยความสะดวกในการแบ่งปันข้อมูลระหว่างส่วนต่างๆ ของระบบ แต่โครงสร้างนี้มีแนวโน้มที่จะเกิดข้อผิดพลาดร้ายแรง ระบบเมล เช่น qmail ใช้โครงสร้างแบบลำดับชั้นเพื่อรันกระบวนการโมดูลย่อยที่มีฟังก์ชันที่แตกต่างกันในลำดับคงที่ และปล่อยกระบวนการเหล่านั้นหลังจากดำเนินการ วิธีการนี้มีคุณสมบัติเป็น "ฉนวน" ที่ดี แต่เพิ่มค่าใช้จ่ายในการสร้างกระบวนการและค่าใช้จ่ายในการสื่อสารระหว่างกระบวนการ อย่างไรก็ตาม ค่าโสหุ้ยสามารถรักษาให้อยู่ในช่วงที่ยอมรับได้โดยการวางแผนลำดับการทำงานของกระบวนการโมดูลย่อยอย่างสมเหตุสมผล
การใช้ MTA อื่นมาแทนที่ Sendmail เป็นเรื่องยากมาก และผู้ใช้มักต้องใช้เวลามากในการทำความคุ้นเคยกับการกำหนดค่าและการใช้ MTA ใหม่ ด้วย Postfix คุณสามารถใช้ประโยชน์จากไฟล์การกำหนดค่าที่มีอยู่มากมายได้ เช่น (การเข้าถึง นามแฝง virtusertable ฯลฯ) คุณเพียงแค่ต้องกำหนดสิ่งเหล่านั้นใน master.cf นอกจากนี้ Postfix ยังทำงานเหมือนกับ Sendmail มาก ผู้ใช้สามารถใช้คำสั่ง sendmail เพื่อเริ่ม Postfix
แน่นอนว่าการใช้ซอฟต์แวร์ชิ้นหนึ่งเพื่อแทนที่อีกชิ้นหนึ่งจำเป็นต้องแก้ไขปัญหาเฉพาะเจาะจง ส่วนหนึ่งเนื่องจากคุณลักษณะด้านความปลอดภัยของ Postfix คุณอาจประสบปัญหาบางอย่างเมื่อกำหนดค่า Postfix ปัญหาที่พบบ่อยที่สุดคือการส่งอีเมลไปยังผู้ใช้รูท โดยทั่วไป Postfix จะไม่เพิ่มสิทธิ์ของตนเอง (จำเป็นในการส่งอีเมลไปยังผู้ใช้รูท) เพื่อส่งจดหมาย ผู้ใช้จำเป็นต้องกำหนดนามแฝงสำหรับรูทในไฟล์นามแฝง เช่น: root: someuser นอกจากนี้ยังส่งผลต่อโมดูลรายชื่อผู้รับจดหมายหลายโมดูล โดยเฉพาะ SmartList โดยทั่วไป วิธีที่ดีที่สุดคือใช้ Majordomo เพื่อใช้งานรายชื่ออีเมล ซึ่งง่ายต่อการกำหนดค่า
ปัญหาที่โดดเด่นมากของ Sendmail คือปัญหาด้านความสามารถในการขยายและประสิทธิภาพ ตัวอย่างเช่น หากผู้ใช้ต้องการรีสตาร์ท Sendmail ทุกวันเพื่ออัปเดตไฟล์การกำหนดค่าโดยอัตโนมัติ (เช่น การเปลี่ยนเส้นทางเมลสำหรับโฮสต์เสมือน) ปัญหาจะเกิดขึ้น Sendmail สร้างกระบวนการใหม่เพื่อจัดการกับการส่งและรับอีเมล กระบวนการเหล่านี้จะมีอยู่จนกว่าการส่งข้อมูลจะเสร็จสิ้น จากนั้น Sendmail จะสามารถออกได้ ด้วยวิธีนี้ สคริปต์ของคุณจะไม่สามารถรีสตาร์ท Sendmail ได้อย่างถูกต้อง สำหรับ Postfix ผู้ใช้เพียงแค่ออกคำสั่ง postfix reload และ Postfix จะโหลดไฟล์การกำหนดค่าใหม่
นอกจากนี้ สำหรับเมลเซิร์ฟเวอร์ที่มีผู้ใช้หลายหมื่นคน ให้ใช้ไฟล์เพื่อจัดเก็บที่อยู่อีเมลที่ตรงกันที่ส่งโดยผู้ใช้ (เช่น ผู้ส่งจดหมายที่ Bob ส่งมาจะเปลี่ยนเป็น [email protected]) สำหรับผู้ใช้จำนวนมาก ไฟล์จะมีขนาดใหญ่มาก จึงส่งผลต่อประสิทธิภาพการทำงานของระบบ Postfix สามารถรวมเข้ากับแบ็กเอนด์ฐานข้อมูลได้ (ปัจจุบันรองรับเฉพาะ MySQL เท่านั้น) เพื่อจัดเก็บข้อมูลการกำหนดค่า วิธีฐานข้อมูลมีประสิทธิภาพในการขยายขนาดมากกว่าวิธีไฟล์
เพื่อให้สอดคล้องกับใบอนุญาตลิขสิทธิ์โอเพ่นซอร์สของ IBM ผู้ใช้สามารถแจกจ่ายซอฟต์แวร์ได้อย่างอิสระและดำเนินการพัฒนารอง ข้อจำกัดเพียงอย่างเดียวคือการเปลี่ยนแปลงที่ทำกับ Postfix จะต้องส่งคืนให้กับ IBM เพราะ IBM ให้ทุนสนับสนุนการพัฒนา Wietse
เปรียบเทียบกับคิวเมล
ข้อเสียของ Qmail คือวิธีการกำหนดค่าไม่สอดคล้องกับ Sendmail และดูแลรักษาไม่ง่าย นอกจากนี้ ลิขสิทธิ์ลิขสิทธิ์ของ Qmail นั้นคลุมเครือมากและไม่ได้เผยแพร่พร้อมกับซอฟต์แวร์ด้วยซ้ำ หมายเหตุจากผู้เขียนแอปพลิเคชัน: หากคุณต้องการเผยแพร่ Qmail เวอร์ชันแก้ไขของคุณเอง คุณต้องได้รับอนุญาตจากฉัน
Qmail qmail เป็น MTA ที่ดาวน์โหลดได้ฟรีซึ่งพัฒนาโดย Dan Bernstein เวอร์ชันเบต้าแรก 0.70.7 เปิดตัวเมื่อวันที่ 24 มกราคม พ.ศ. 2539 เวอร์ชัน 1.0 เปิดตัวในเดือนกุมภาพันธ์ พ.ศ. 2540 เวอร์ชันปัจจุบันคือ 1.03 [ตัดหน้า]
คุณสมบัติของคิวเมล
ความปลอดภัย เพื่อตรวจสอบความปลอดภัยของ Qmail ผู้สนับสนุน Qmail ยังเสนอเงินรางวัล 1,000 ดอลลาร์สหรัฐฯ เพื่อค้นหาช่องโหว่ด้านความปลอดภัยใน Qmail อีกหนึ่งปีต่อมา เงินรางวัลดังกล่าวไม่ได้รับการอ้างสิทธิ์และได้บริจาคให้กับมูลนิธิซอฟต์แวร์เสรี ปัจจุบัน ผู้เขียน Qmail ได้ลงทุน 500 ดอลลาร์เพื่อค้นหาช่องโหว่ด้านความปลอดภัยใน Qmail
ความเร็ว: Qmail สามารถส่งอีเมลได้ประมาณหนึ่งล้านฉบับบนระบบขนาดกลาง สามารถรองรับอีเมลได้มากกว่า 100,000 ฉบับต่อวันใน 486 และรองรับการจัดส่งแบบขนาน Qmail รองรับการส่งอีเมลแบบคู่ขนานและสามารถส่งอีเมลได้ประมาณ 20 ฉบับในเวลาเดียวกัน ปัญหาคอขวดของการส่งอีเมลในปัจจุบันอยู่ในโปรโตคอล SMTP ใช้เวลามากกว่า 10 วินาทีในการส่งอีเมลไปยังโฮสต์อินเทอร์เน็ตอื่นผ่าน STMP ผู้เขียน Qmail เสนอ QMTP (Quick Mail Transfer Protocol) เพื่อเพิ่มความเร็วในการส่งอีเมล และ Qmail รองรับ เป้าหมายการออกแบบของ Qmail คือสามารถส่งอีเมลได้ประมาณหนึ่งล้านฉบับต่อวันบนเครื่อง 16 ล้านฉบับในที่สุด
ความน่าเชื่อถือ: เพื่อให้มั่นใจในความน่าเชื่อถือ Qmail จะส่งคืนผลการประมวลผลที่สำเร็จเมื่อมีการเขียนอีเมลลงดิสก์อย่างถูกต้อง ด้วยวิธีนี้ แม้ว่าระบบจะขัดข้องหรือไฟฟ้าดับในระหว่างการเขียนดิสก์ ก็สามารถรับประกันได้ว่าจะไม่เป็นเช่นนั้น สูญหาย ส่งมอบใหม่แทน
โดยเฉพาะอย่างยิ่งการจัดการโดเมนเสมือนที่เรียบง่าย ยังมีส่วนเสริมที่พัฒนาโดยบุคคลที่สามที่เรียกว่า vpopmail เพื่อรองรับโดเมน POP เสมือน หากต้องการใช้แพ็คเกจนี้ ผู้ใช้ POP3 ไม่จำเป็นต้องมีบัญชีอย่างเป็นทางการในระบบ
ใช้ ezmlm เพื่อรองรับฟังก์ชันรายการส่งเมลที่ผู้ใช้ควบคุม
ผู้ใช้เมลและบัญชีระบบจะถูกแยกออกจากกัน การให้บัญชีเมลแก่ผู้ใช้ไม่จำเป็นต้องตั้งค่าบัญชีระบบให้พวกเขา จึงเพิ่มความปลอดภัย
Sendmail กับ Qmail
ก่อนอื่น: sendmail เป็น MTA ที่มีประวัติการพัฒนามายาวนาน และเวอร์ชันปัจจุบันคือ 8.10.2 แน่นอนว่า Sendmail มีการรับประกันในแง่ของความสะดวกในการพกพา ความเสถียร และการทำให้มั่นใจว่าไม่มีข้อผิดพลาด แต่มีโพสต์มากมายบนอินเทอร์เน็ตเกี่ยวกับการโจมตี Sendmail ซึ่งเป็นฝันร้ายสำหรับผู้ดูแลระบบ ในระหว่างกระบวนการพัฒนา Sendmail กลุ่มผู้ดูแลระบบ Sendmail ที่มีประสบการณ์ได้ถูกสร้างขึ้น และ Sendmail ยังมีเอกสารที่สมบูรณ์จำนวนมาก นอกเหนือจากคอลเลกชันของ Sendmail: หนังสือ sendmail ของ O'Reilly ที่เขียนโดย Bryan Costales กับ Eric Allman ยังมีเอกสารขนาดใหญ่อีกมากมาย จำนวนบทช่วยสอนบนอินเทอร์เน็ต คำถามที่พบบ่อย และแหล่งข้อมูลอื่นๆ เอกสารจำนวนมากเหล่านี้มีความสำคัญมากสำหรับการใช้ประโยชน์จากคุณสมบัติต่างๆ ของ Sendmail ให้เกิดประโยชน์ แต่ปัจจุบัน Sendmai เป็น MTA ที่เป็นผู้ใหญ่แล้ว
แน่นอนว่า Sendmail มีข้อบกพร่องบางประการ มีคุณสมบัติมากเกินไปจนทำให้ไฟล์การกำหนดค่ามีความซับซ้อน แน่นอนว่าการสร้างไฟล์การกำหนดค่าจะง่ายขึ้นมากโดยใช้มาโคร m4 อย่างไรก็ตาม ไม่ใช่เรื่องง่ายที่จะเชี่ยวชาญตัวเลือกการกำหนดค่าทั้งหมด Sendmail มีช่องโหว่ด้านความปลอดภัยมากมายในเวอร์ชันที่ผ่านมา ดังนั้นผู้ดูแลระบบจึงต้องอัปเกรดเวอร์ชันอย่างรวดเร็ว และความนิยมของ Sendmail ยังทำให้เป็นเป้าหมายของการโจมตีซึ่งมีทั้งข้อดีและข้อเสีย นั่นหมายความว่าสามารถค้นพบช่องโหว่ด้านความปลอดภัยได้อย่างรวดเร็ว แต่ยังทำให้ Sendmail มีเสถียรภาพและปลอดภัยมากขึ้นอีกด้วย ปัญหาอีกประการหนึ่งคือการกำหนดค่าเริ่มต้นของ Sendmail โดยทั่วไปมีคุณสมบัติด้านความปลอดภัยเพียงเล็กน้อย ทำให้ Sendmail มักเสี่ยงต่อการถูกโจมตี หากคุณใช้ Sendmail คุณควรแน่ใจว่าคุณเข้าใจความหมายและผลกระทบของแต่ละตัวเลือกที่คุณเปิด เมื่อคุณเข้าใจวิธีการทำงานของ Sendmail แล้ว การติดตั้งและบำรุงรักษา Sendmail จะกลายเป็นเรื่องง่ายมาก ด้วยไฟล์การกำหนดค่าของ Sendmail ผู้ใช้สามารถตอบสนองทุกความต้องการเท่าที่จะจินตนาการได้
Qmail เป็นตัวเลือกที่ได้รับการออกแบบและใช้งานโดยคำนึงถึงปัญหาด้านความปลอดภัย หากคุณต้องการวิธีแก้ปัญหาที่รวดเร็ว เช่น เกตเวย์อีเมลที่ปลอดภัย Qmail เป็นตัวเลือกที่ดี ไฟล์การกำหนดค่าของ Qmail และ Sendmail นั้นแตกต่างอย่างสิ้นเชิง สำหรับ Qmail นั้น จะมีไฟล์การกำหนดค่าของตัวเอง ไดเร็กทอรีการกำหนดค่าประกอบด้วยไฟล์ที่แตกต่างกัน 5-30 ไฟล์ และแต่ละไฟล์จะใช้การกำหนดค่าในส่วนต่างๆ (เช่น โดเมนเสมือนหรือโฮสต์เสมือน เป็นต้น) คำแนะนำในการกำหนดค่าเหล่านี้ได้รับการบันทึกไว้อย่างดีในมนุษย์ แต่โครงสร้างโค้ดของ Qmail นั้นไม่ค่อยดีนัก
Qmail มีขนาดเล็กกว่า Sendmail มากและขาดคุณสมบัติบางอย่างที่พบในเซิร์ฟเวอร์เมลในปัจจุบัน แตกต่างจาก Sendmail ตรงที่ qmail จะไม่ตรวจสอบชื่อโดเมนของผู้ส่งซองอีเมลเพื่อให้แน่ใจว่าชื่อโดเมนถูกต้อง มันไม่ได้ให้การสนับสนุน RBL เอง แต่ต้องมีส่วนเสริมเพื่อใช้งาน และ Sendmail รองรับ RBL ในทำนองเดียวกัน Qmail ไม่สามารถปฏิเสธที่จะรับอีเมลที่ไม่มีผู้รับที่ต้องการได้ แต่จะได้รับอีเมลก่อนแล้วจึงส่งคืนอีเมลที่ไม่ได้เป็นของผู้ใช้รายนี้ ปัญหาที่ใหญ่ที่สุดของ Qmail อยู่ที่การประมวลผลการส่งอีเมลไปยังผู้รับหลายคน หากคุณส่งอีเมลขนาดใหญ่ไปยังผู้ใช้หลายรายในโดเมนเดียวกัน Sendmail จะส่งสำเนาของอีเมลไปยังเซิร์ฟเวอร์เมลปลายทางเท่านั้น Qmail จะเชื่อมต่อหลายครั้งพร้อมกัน โดยส่งสำเนาให้กับผู้ใช้ในแต่ละครั้ง หากผู้ใช้จำเป็นต้องส่งอีเมลจำนวนมากถึงผู้ใช้หลายรายในแต่ละวัน การใช้ Qmail จะสิ้นเปลืองแบนด์วิดท์จำนวนมาก คุณสามารถคิดเช่นนี้: การเพิ่มประสิทธิภาพ Sendmail ช่วยประหยัดทรัพยากรแบนด์วิธ และการเพิ่มประสิทธิภาพ Qmail ช่วยประหยัดเวลา หากระบบผู้ใช้มีแบนด์วิธที่ดี Qmail จะมีประสิทธิภาพดีขึ้น หากระบบผู้ใช้มีทรัพยากรแบนด์วิธจำกัดและจำเป็นต้องส่งข้อมูลรายชื่ออีเมลจำนวนมาก Sendmail จะมีประสิทธิภาพมากขึ้น Qmail ไม่รองรับ .forward (.forward มีประโยชน์มากสำหรับผู้ใช้ในหลายกรณี) ไม่ได้ใช้ /var/spool/mail แต่เก็บเมลไว้ในโฮมไดเร็กตอรี่ของผู้ใช้ ต่อไปนี้เป็นงานบางอย่างที่ไม่ง่ายนักในการใช้ Qmail เพื่อทำงานเหล่านี้ให้เสร็จสิ้นโดยใช้ Qmail ผู้ใช้อาจจำเป็นต้องใช้งานด้วยตนเองหรือใช้โมดูลที่ไม่น่าเชื่อถือที่จัดทำโดยบุคคลที่สาม
ซอร์สโค้ดของ Qmail เข้าใจได้ง่ายกว่า Sendmail ซึ่งเป็นข้อได้เปรียบสำหรับผู้ที่ต้องการทำความเข้าใจกลไก MTA ภายใน Qmail ควรมีเสถียรภาพมากขึ้นในแง่ของความปลอดภัย Qmail มีการสนับสนุนด้านเทคนิคที่ดี แต่ยังไม่ค่อยมีการใช้งานกันอย่างแพร่หลายและมีฐานผู้ใช้ผู้ดูแลระบบขนาดใหญ่เช่น Sendmail การติดตั้ง Qmail จะไม่เป็นแบบอัตโนมัติเหมือนกับ Sendmail และต้องมีขั้นตอนที่ต้องดำเนินการด้วยตนเอง นอกจากนี้ เอกสารของ Qmail ยังไม่ครบถ้วนและสมบูรณ์เท่ากับของ Sendmail
Qmail มีส่วนเสริมน้อยกว่า Sendmail โดยทั่วไปแล้ว สำหรับผู้ดูแลระบบที่มีประสบการณ์น้อยกว่าเล็กน้อย ควรเลือก Qmail ค่อนข้างดีกว่า Qmail นั้นง่ายกว่าและฟังก์ชั่นพิเศษก็สามารถตอบสนองความต้องการของผู้ใช้ทั่วไปได้ Sendmail คล้ายกับชุดโปรแกรมสำนักงาน และ 80% ของฟังก์ชันต่างๆ มักไม่ได้ใช้ สิ่งนี้ทำให้ Qmail ได้รับความนิยมมากขึ้นในบางสถานการณ์ โดยมีคุณสมบัติยอดนิยมและใช้งานได้จริงบางอย่างที่ Sendmail ไม่มี ตัวอย่างเช่น Qmail มีการรองรับ pop3 ในตัว Qmail ยังรองรับการพรางโฮสต์หรือผู้ใช้ โดเมนเสมือน ฯลฯ ความเรียบง่ายของ Qmail ยังทำให้การกำหนดค่าค่อนข้างง่าย
Qmail ถือว่ามีความปลอดภัยและมีประสิทธิภาพมากกว่า Sendmail เครื่อง Pentium ที่ใช้งาน Qmail สามารถประมวลผลข้อความได้ประมาณ 200,0000 ครั้งต่อวัน
qmail นั้นง่ายกว่า MTA อื่น ๆ มาก โดยส่วนใหญ่สะท้อนให้เห็นใน:
(1) MTA อื่นๆ ใช้กลไกอิสระสำหรับการส่งต่ออีเมล ชื่อแทนอีเมล และรายชื่ออีเมล ในขณะที่ qmail ใช้กลไกการส่งต่อที่เรียบง่ายเพื่อให้ผู้ใช้สามารถประมวลผลรายชื่ออีเมลของตนเองได้
(2) MTA อื่นๆ จัดให้มีกลไกการส่งอีเมลด้วยวิธีที่รวดเร็วและไม่ปลอดภัย และวิธีการจัดคิวที่ช้า ในขณะที่การส่ง qmail ถูกกระตุ้นโดยการปรากฏตัวของเมลใหม่ ดังนั้นการส่งจึงมีเพียงโหมดเดียวเท่านั้น: วิธีการจัดคิวแบบรวดเร็ว
(3) MTA อื่นๆ มีเวอร์ชันเฉพาะของ inetd เพื่อตรวจสอบโหลดเฉลี่ยของ MTA ในขณะที่ qmail ได้ออกแบบกลไกภายในเพื่อจำกัดโหลดของระบบ ดังนั้น qmail-smtpd จึงสามารถเรียกใช้จาก inet ของระบบได้อย่างปลอดภัย
sendmail มีการสนับสนุนเชิงพาณิชย์มากมาย และเนื่องจากมีฐานผู้ใช้ขนาดใหญ่ จึงมีโอกาสมีการสนับสนุนทางเทคนิคมากมายบนอินเทอร์เน็ต Qmail มีการสนับสนุนด้านเทคนิคที่จำกัดมากเท่านั้น มี inter7.com ของบริษัทที่ให้การสนับสนุน Qmail นอกจากนี้บริษัทยังมีส่วนเสริมฟรี รวมถึงเครื่องมือการจัดการบนเว็บ - QmailAdmin และการสนับสนุนโดเมนเสมือนผ่าน vpopmail และแม้แต่อินเทอร์เฟซแบบยืมเว็บ SqWebMail.
Qmail ยังมีข้อบกพร่องอื่นๆ อยู่บ้าง ตัวอย่างเช่น มันไม่เป็นไปตามมาตรฐานอย่างสมบูรณ์และไม่รองรับ DSN ผู้เขียนเชื่อว่า DSN เป็นเทคโนโลยีที่กำลังจะตาย และ VERP ของ Qmail สามารถทำงานเดียวกันให้เสร็จสิ้นได้โดยไม่ต้องอาศัยการสนับสนุนจากโฮสต์อื่นเช่น DSN ปัญหาอีกประการหนึ่งของ Qmail ก็คือมันไม่เป็นไปตามมาตรฐานระบบ 7 บิตและส่ง 8 บิตทุกครั้ง หากฝ่ายที่ได้รับอีเมลไม่สามารถจัดการกับสถานการณ์นี้ได้ อีเมลนั้นก็จะอ่านไม่ออก
ในแง่ของความปลอดภัย Sendmail นั้นแย่กว่า Qmail Sendmail ประสบปัญหาด้านความปลอดภัยที่มีชื่อเสียงมากมายในระหว่างการพัฒนา ในขณะที่ Qmail ค่อนข้างสั้นและกระชับ แต่ยังคงมีฟังก์ชัน STMP พื้นฐาน ความคิดเห็นเกี่ยวกับโค้ดของ Qmail มีน้อยลง คุณลักษณะที่ดีของ Qmail คือการรองรับรูปแบบพื้นที่จัดเก็บเมลตามไดเรกทอรีที่เป็นตัวเลือก แทนที่จะใช้ไฟล์ขนาดใหญ่เพียงไฟล์เดียวเพื่อจัดเก็บเมลของผู้ใช้ทั้งหมด หากเมลเซิร์ฟเวอร์ของผู้ใช้ให้บริการ POP3 จำนวนมาก รูปแบบการจัดเก็บเมลนี้สามารถปรับปรุงประสิทธิภาพได้ น่าเสียดายที่ Pine เองไม่รองรับรูปแบบการจัดเก็บข้อมูลนี้ หากจำเป็น คุณสามารถใช้แพตช์บางส่วนเพื่อให้บรรลุวัตถุประสงค์นี้ได้
ข้อดีของ Qmail คือผู้ใช้แต่ละคนสามารถสร้างรายชื่ออีเมลได้โดยไม่ต้องมีสิทธิ์รูท ตัวอย่างเช่น ผู้ใช้ foo สามารถสร้างรายชื่ออีเมลชื่อ foo-slashdot, foo-linux, foo-chickens ได้ เป็นเครื่องมือที่เรียกว่า ezmlm (EZ Mailing List Maker) ที่สามารถรองรับฟังก์ชันต่างๆ ของ Majordomo เช่น การลงทะเบียนและออกจากระบบอัตโนมัติ การทำดัชนี ฯลฯ แต่ทั้งหมดนี้ขับเคลื่อนด้วย CLI และต้องการไฟล์เพียงไม่กี่ไฟล์เท่านั้นที่จะแก้ไข Qmail เหมาะมากสำหรับการทำงานกับระบบขนาดเล็ก ซึ่งโดยทั่วไปรองรับผู้ใช้จำนวนไม่มากเท่านั้น หรือใช้เพื่อจัดการรายชื่อผู้รับอีเมล Qmail รวดเร็วและง่ายดาย: Qmail เป็นตัวเลือกที่ดีที่สุดเมื่อคุณต้องการความปลอดภัยและการกำหนดค่าที่ง่ายดาย Qmail สามารถกำหนดค่าได้ภายใน 2 ชั่วโมง ในขณะที่ Sendmail อาจไม่สามารถกำหนดค่าได้ภายในสองวัน
rocketmail internic ฯลฯ ล้วนสร้างโดยใช้ qmail
ZMailer
ZMailer เป็นโปรแกรมเมลหลายกระบวนการประสิทธิภาพสูงสำหรับระบบ Unix [aka MTA ต่อสำนวน X.400] ซึ่งสามารถดาวน์โหลดได้อย่างอิสระจากเซิร์ฟเวอร์ ftp://ftp.funet.fi/pub/unix/mail/zmailer/ มันยังได้รับการออกแบบในโหมด monoblock อีกด้วย ระบบเมล เช่น Hotmail สร้างขึ้นโดยใช้ Zmailer
Exim Exim เป็น MTA ที่สอดคล้องกับ GPL ที่พัฒนาโดยมหาวิทยาลัยเคมบริดจ์ รูปแบบคล้ายกับ Smail 3 แต่มีความสมบูรณ์มากกว่า Smail 3 เวอร์ชันล่าสุดคือ 3.15 เว็บไซต์หลักคือhttp://www.exim.org/ คุณสมบัติที่ใหญ่ที่สุดคือความเรียบง่ายของการกำหนดค่า แต่ความปลอดภัยไม่ดีเท่า Qmail และ Postfix
ต่อไปนี้เป็นการเปรียบเทียบคุณลักษณะของ MTA หลายรายการ โดยทั่วไปแล้ว Qmail และ Postfix ต่างก็เป็น MTA ที่ดีมาก เกณฑ์การคัดเลือกมักเป็นเรื่องของการตั้งค่าส่วนตัว
คุณสมบัติด้านความปลอดภัยที่ครบกำหนดของ MTA ประสิทธิภาพ ความเข้ากันได้ของ Sendmail การออกแบบโมดูลาร์ qmail ปานกลาง สูง สูง สูง addons ใช่ Sendmail สูง ต่ำ สูง ต่ำ x ไม่ใช่ Postfix ต่ำ สูง สูง สูง ใช่ ใช่ exim ปานกลาง ต่ำ สูง ปานกลาง ใช่ ไม่ใช่
แน่นอนว่า นอกเหนือจาก MTA หลายรายการที่แนะนำในที่นี้แล้ว ยังมี MTA เชิงพาณิชย์หรือ MTA ฟรีอื่นๆ อีกด้วย