การติดตั้งเดเบียน sendmail การตั้งค่าการส่งอีเมล์ ตรวจสอบฟังก์ชัน mail()

คู่มือการติดตั้งและกำหนดค่าสำหรับหนึ่งในคู่มือที่เก่าแก่ที่สุด เอ็มทีเอ (ตัวแทนการโอนจดหมาย) โปรแกรมสำหรับส่งอีเมล - ส่งอีเมลซึ่งสามารถติดตั้งได้บนระบบปฏิบัติการใดก็ได้ ในระบบปฏิบัติการจำนวนมาก sendmail จะได้รับการติดตั้งตามค่าเริ่มต้น และไม่จำเป็นต้องเปลี่ยน MTA มาตรฐานนี้เป็นอื่นเป็นพิเศษ ในเวลาเดียวกัน PHP เดียวกันได้รับการกำหนดค่าตามค่าเริ่มต้นให้ทำงานกับ MTA นี้ หากการตั้งค่า sendmail ใช้เวลานาน ให้ติดตั้ง postfix () คุณไม่ควรเสียเวลามากนัก

การตระเตรียม

ตรวจสอบว่าคุณได้ติดตั้ง sendmail และไม่ใช่ Exim4 หรือ MTA อื่น:

Ls -la `ซึ่ง sendmail` # lrwxrwxrwx 1 รูท 26 2011-01-17 19:58 /usr/sbin/sendmail -> /etc/alternatives/sendmail

การติดตั้ง

sudo apt-get ติดตั้ง sendmail sasl2-bin

การกำหนดค่า /etc/hosts

127.0.0.1 localhost localhost.localdomain e5530
บันทึก

คุณต้องระบุโฮสต์หลักของคุณ (ชื่อคอมพิวเตอร์ ของฉันคือ e5530) และ localhost.localdomain มิฉะนั้นคุณจะได้รับข้อผิดพลาด: ไม่ทราบชื่อโฮสต์ที่ไม่เข้าเกณฑ์ (myhostname) นอนเพื่อลองใหม่" และ "ไม่สามารถรับรองชื่อโดเมนของตัวเองได้ (e5530) – โดยใช้ชื่อสั้น, ส่งเมล์ ใช้เวลานานในการเริ่มต้นและส่งจดหมายช้า อาจจะเป็นเจ้าบ้าน. localhost.localdomain พลาดได้ไม่แน่ครับ

หลังจากนี้คุณจะต้องระบุชื่อของโฮสต์ภายในเครื่องที่ต้องการ ส่งอีเมลจะยอมรับคำขอส่งข้อความอีเมลในไฟล์ /etc/mail/local-host-names:

AuthInfo:smtp.gmail.com "คุณ: [ป้องกันอีเมล]" "ฉัน: [ป้องกันอีเมล]" "P:YourPass" "M:PLAIN" AuthInfo:smtp.gmail.com:465 "U: [ป้องกันอีเมล]" "ฉัน: [ป้องกันอีเมล]" "P:YourPass" "M:PLAIN"

บันทึก

แทนที่จะใช้พอร์ต 465 คุณสามารถลองใช้ 587 ได้ (หากคุณมีปัญหาเกี่ยวกับการอนุญาต):

AuthInfo:smtp.gmail.com:587 "คุณ: [ป้องกันอีเมล]" "ฉัน: [ป้องกันอีเมล]" "P:YourPass" "M:PLAIN"

Chmod 600 /etc/mail/auth/*

กำหนดค่า sendmail.mc

ไฟล์กำหนดค่า /etc/mail/sendmail.mc เปรียบเทียบการกำหนดค่าของคุณ มันควรจะเป็นประมาณนี้... ลำดับคำสั่งเป็นสิ่งสำคัญ!

Dnl # รวม(`/etc/mail/m4/dialup.m4")dnl รวม(`/etc/mail/m4/provider.m4")dnl รวม(`/etc/mail/tls/starttls.m4")dnl รวม (`/etc/mail/sasl/sasl.m4")คุณสมบัติ dnl(`authinfo",`hash /etc/mail/auth/client-info")dnl กำหนด (`SMART_HOST",`smtp.gmail.com" )dnl กำหนด(`RELAY_MAILER_ARGS", `TCP $h 587")dnl กำหนด(`ESMTP_MAILER_ARGS", `TCP $h 587")dnl dnl # dnl # การตั้งค่าเมลเริ่มต้น MAILER_DEFINITIONS MAILER(`local")dnl MAILER(`smtp" )dnl กำหนด(`confAUTH_MECHANISMS", `ภายนอก GSSAPI DIGEST-MD5 CRAM-MD5 เข้าสู่ระบบธรรมดา")dnl # dnl กำหนด(`confDOMAIN_NAME", `e5530")dnl

การใช้การกำหนดค่า sendmail

cd /etc/mail sudo su # แค่ sudo ใช้งานไม่ได้! m4 sendmail.mc > sendmail.cf makemap -r แฮช authinfo.db< auth/client-info make /etc/init.d/sendmail restart # Перезагрузка конфига

ปัญหาและแนวทางแก้ไข

หากทุกอย่างได้รับการกำหนดค่าอย่างถูกต้อง แต่ข้อความจบลงใน "คิวที่เลื่อนออกไป" และไม่ได้ส่งต่อไปยัง SMTP อื่น:

  1. ตรวจสอบ IP ของคุณในบัญชีดำ คุณสามารถตรวจสอบการแบน IP ได้ที่นี่ smart-ip.net IP ของฉันถูกรวมอยู่ในฐานข้อมูลสแปมเฮาส์
  2. ตรวจสอบว่าผู้ให้บริการของคุณบล็อกแพ็กเก็ตขาออกบนพอร์ต 25 หรือไม่
อินเตอร์เทเลคอมมีปัญหา!

ฉันไม่เคยจัดการตั้งค่าการส่งต่อข้อความไปยัง GMail ผ่าน sendmail บนการเชื่อมต่อ Intertelecom - sendmail เคาะพอร์ต 25 อย่างดื้อรั้นซึ่งผู้ให้บริการปิด ฉันต้องกำหนดค่า postfix

การตั้งค่า PHP (ถ้าจำเป็น)

ระบุพารามิเตอร์การเปิดใช้งาน sendmail ใน config /etc/php5/apache2/php.ini (/etc/php5/cli/php.ini):

## การตั้งค่า sendmail สำหรับ PHP: sendmail_path = /usr/sbin/sendmail -t ;sendmail_path = "/usr/sbin/sendmail -t -f [ป้องกันอีเมล]-ฉัน"

มาตรวจสอบการตั้งค่ากัน

echo "ข้อความข้อความ" | เมล -s "Subjet" [ป้องกันอีเมล] sendmail -t [ป้องกันอีเมล]-ฉ [ป้องกันอีเมล]-v -i< ~/mail-body.txt

หากต้องการทดสอบ postfix ให้ลองส่งข้อความหลายๆ ข้อความจากคอนโซล ฉันอธิบายวิธีการทำเช่นนี้ในบทความนี้: “”

การจัดการส่งเมล์

ดูคิวข้อความทั้งหมด:

Sudo mailq

ดูคิวข้อความตามที่อยู่ที่ระบุ:

Sudo mailq | เกรพ " [ป้องกันอีเมล]" | สุขา -ล

ล้างคิวข้อความ sendmail ทั้งหมด:

Sudo rm -r /var/spool/mqueue-client/*

ล้างคิวข้อความ sendmail ตามปลายทาง:

ซีดี /var/spool/mqueue ls | xargs -ti sh -c "grep" [ป้องกันอีเมล]" "()" > /dev/null && rm -f "()""

#ส่งเมล, #LAMP, #MTA

ป.ล.หากคุณต้องการเรียนรู้คอนโซล Linux ในระดับที่ค่อนข้างดี ฉันแนะนำให้อ่านหนังสือเล่มล่าสุดของ Denis Kolisnichenko “ บรรทัดคำสั่ง Linux และระบบอัตโนมัติของงานประจำ».

ปรากฏย้อนกลับไปในปี 1983 แต่ยังคงใช้อย่างแข็งขันจนถึงทุกวันนี้ คุณสมบัติที่สำคัญประการหนึ่งคือได้รับการสนับสนุนโดยหลายแพลตฟอร์มที่มีอยู่ในปัจจุบันและยังฟรีอีกด้วย แอปพลิเคชั่นนี้มาพร้อมกับซอฟต์แวร์โอเพ่นซอร์ส ซึ่งหมายความว่าทุกคนสามารถเพิ่มฟังก์ชันการทำงานของตนเองหรือเปลี่ยนแปลงได้ตามต้องการ ในระบบปฏิบัติการ Ubuntu Sendmail ซึ่งกำหนดค่าโดยใช้บรรทัดคำสั่ง Linux ได้รับการรูทเนื่องจากการสนับสนุนที่ดีและความสามารถที่หลากหลาย

โปรแกรมประมวลผลข้อความ – Sendmail – แพร่หลายในวงการธุรกิจ

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

การติดตั้งโปรแกรม

คุณต้องติดตั้ง Sandmail บนเซิร์ฟเวอร์ภายในหรือเว็บเซิร์ฟเวอร์ ในกรณีที่สอง ตัวแทนอีเมลจะทำงานได้มากขึ้น หากต้องการรับส่วนประกอบทั้งหมดของเว็บเซิร์ฟเวอร์ คุณจะต้องมีสแต็กส่วนประกอบ LAMP สามารถพบได้ในพื้นที่เก็บข้อมูล

สำคัญ. ก่อนติดตั้งซอฟต์แวร์ใหม่ ตรวจสอบให้แน่ใจว่าได้อัปเดตรายการแพ็คเกจในพื้นที่เก็บข้อมูลในเครื่องของคุณโดยใช้คำสั่ง

"$ sudo apt-get อัปเดต"

การติดตั้ง Sandmail เริ่มต้นด้วยคำสั่ง “sudo apt install sendmail” ซึ่งจะดาวน์โหลดแพ็คเกจตัวแทนเมล

"mcedit /etc/hosts"
"sudo sendmailconfig"

หลังจากนี้คุณจะต้องรีสตาร์ทบริการของโปรแกรมเองรวมถึงเว็บเซิร์ฟเวอร์ Apache:

"sudo /etc/init.d/sendmail รีสตาร์ท"
"sudo /etc/init.d/apache2 รีสตาร์ท"

หากจำเป็นคุณสามารถติดตั้งยูทิลิตี้สำหรับการทำงานกับเมลได้:

"sudo ติดตั้ง mailutils"

เราตรวจสอบการทำงานของระบบทั้งหมด:

"ส่งอีเมล your_mail< /dev/null»

โดยที่ “your_mail” คือที่อยู่ทางไปรษณีย์ปัจจุบัน

และสุดท้าย เรามาตรวจสอบไฟล์บันทึกกัน นี่คือไฟล์บริการเมลที่จะแสดงข้อผิดพลาดในการติดตั้ง:

"tail -f /var/log/mail.log"

สิ่งที่เหลืออยู่คือไปที่กล่องจดหมายอีเมลของคุณ ควรมีข้อความทดสอบอยู่แล้ว

ดังนั้น คุณได้เรียนรู้เพิ่มเติมเกี่ยวกับโปรแกรมสำหรับ Ubuntu ชื่อ Sendmail ซึ่งกลายเป็นว่าตั้งค่าได้ไม่ยากนัก หากคุณมีคำถามเกี่ยวกับแง่มุมอื่น ๆ ในการทำงานกับโปรแกรมสำหรับ Linux ค้นหาคำตอบได้จากหน้าเว็บไซต์ของเรา!

หนังสือเล่มนี้กล่าวถึงรายละเอียดการตั้งค่าบริการเครือข่ายที่ช่วยให้คุณสามารถสร้างเซิร์ฟเวอร์ที่มีการกำหนดค่าและฟังก์ชันการทำงานที่จำเป็นตามระบบปฏิบัติการ Linux คุณสามารถกำหนดค่าเซิร์ฟเวอร์ประเภทใดก็ได้: จากเซิร์ฟเวอร์เครือข่ายท้องถิ่นไปจนถึงเซิร์ฟเวอร์อินเทอร์เน็ตและเซิร์ฟเวอร์การเข้าถึงระยะไกล การดูแลระบบ Linux มีการอธิบายโดยละเอียด

การนำเสนอเนื้อหาขึ้นอยู่กับการแจกแจงของ Red Hat และ Mandrake ข้อมูลเฉพาะมากมาย: การรันเกม Windows บน Linux และการสร้างเซิร์ฟเวอร์ Linux สำหรับห้องเล่นเกม การตั้งค่าโปรแกรมป้องกันไวรัสของ Dr. เว็บและ AVP สำหรับ Linux, โปรแกรมบัญชีจราจร MRTG, LIDS ระบบตรวจจับความปลอดภัยและการโจมตี และอื่นๆ อีกมากมาย ให้ความสนใจเป็นพิเศษกับความปลอดภัยของเซิร์ฟเวอร์ Linux Linux OS ได้รับการอธิบายอย่างละเอียดเพียงพอและมีหนังสืออ้างอิงสำหรับคำสั่งต่างๆ หลังจากอ่านหนังสือแล้ว คุณจะมีความรู้เกี่ยวกับการกำหนดค่าและการคอมไพล์เคอร์เนล การสร้างแพ็คเกจ rpm ของคุณเอง ตัวแปลคำสั่ง bash และการใช้อาร์เรย์ RAID คุณจะได้รู้จักโลกภายในของ Linux หนังสือเล่มนี้เหมาะสำหรับผู้ดูแลระบบทั้งมืออาชีพและมือใหม่ เนื่องจากการนำเสนอเนื้อหาเริ่มต้นด้วยการติดตั้ง Linux OS และบทแรกจะอธิบายเทคโนโลยีเครือข่ายและโปรโตคอลพื้นฐาน (หลักสูตร Young Administrator)

รายการทั้งหมดที่ระบุในหนังสือเล่มนี้ได้รับการทดสอบในทางปฏิบัติแล้วและอยู่ในซีดีที่แนบมาด้วย นอกจากนี้ยังมีข้อมูลอ้างอิงจำนวนมาก (HOWTO, RFC) รวมถึงบทความเกี่ยวกับ Linux มีชุดยูทิลิตี้และซอฟต์แวร์เสริมมากมายสำหรับเซิร์ฟเวอร์ (Apache, MySQL, MRTG ฯลฯ)

หนังสือ:

หากคุณใช้การแจกจ่ายที่เข้ากันได้กับ RedHat คุณจะต้องติดตั้งแพ็คเกจที่เหมาะสม ฉันใช้ sendmaiI-8.11.0 และ imap-4.7c2 sendmail เวอร์ชันล่าสุดสามารถดาวน์โหลดได้จากอินเทอร์เน็ตที่ http://www.sendmail.org

ก่อนที่คุณจะเริ่มตั้งค่า sendmail คุณต้องกำหนดค่า DNS อย่างถูกต้อง มีการพูดคุยรายละเอียดเกี่ยวกับการตั้งค่าเซิร์ฟเวอร์ DNS ใน Chap 10. หากคุณตั้งค่าเฉพาะเมลเซิร์ฟเวอร์ คุณไม่จำเป็นต้องตั้งค่าเซิร์ฟเวอร์ DNS บนคอมพิวเตอร์เครื่องเดียวกัน การระบุเซิร์ฟเวอร์ DNS ของเครือข่ายของคุณในไฟล์ /etc/resolv.conf ก็เพียงพอแล้วเพื่อให้ระบบจำแนกชื่อทำงานได้อย่างถูกต้อง อย่างไรก็ตาม sendmail สามารถกำหนดค่าให้ทำงานโดยไม่ต้องใช้ DNS ได้ แต่ฉันจะไม่พิจารณาตัวเลือกนี้

หากต้องการเริ่มการตั้งค่า sendmail พื้นฐาน ให้เรียกใช้ยูทิลิตี้ netconf (ดูรูปที่ 13.1) ทำงานได้ทั้งจาก X-Window และจากคอนโซล ยูทิลิตี้ netconf มีอยู่ใน RedHat Linux, Mandrake, ASPLinux และดิสทริบิวชั่นอื่น ๆ ไม่มีใน KSI Linux แน่นอน โดยปกติคุณจะต้องเข้าสู่ระบบในฐานะรูท หากคุณไม่มี netconf คุณจะต้องแก้ไขไฟล์ /etc/sendmail.cf ด้วยมืออย่างรวดเร็ว มันอยู่ในไฟล์นี้ที่เก็บการตั้งค่า sendmail ทั้งหมด


มะเดื่อ. 13.1. ตัวกำหนดค่า netconf

เลือกระบบส่งเมลจากเมนู จากนั้นเลือกการกำหนดค่า sendmail พื้นฐาน ในฟิลด์ Present your system as เพียงป้อนชื่อโดเมนของคุณ จากนั้นอย่าลืมทำเครื่องหมายในช่อง “ยอมรับอีเมลสำหรับ your_domain.com” (ดูรูปที่ 13.2) หากคุณไม่ทำเช่นนี้ ข้อความอาจถูกเปลี่ยนเส้นทางผ่านเซิร์ฟเวอร์ของคุณไปยังเซิร์ฟเวอร์อื่น ในเวลาเดียวกัน ปริมาณการใช้งานเพิ่มเติมจะไหลผ่านเซิร์ฟเวอร์ของคุณ ซึ่งคุณไม่จำเป็นต้องใช้เลย กาลครั้งหนึ่งมีแม้กระทั่งการโจมตีแบบปฏิเสธทางอีเมลเช่นนี้ หลักการมีดังนี้: จดหมายถูกส่งจากผู้ใช้ที่ไม่มีอยู่จริง [ป้องกันอีเมล]ผู้ใช้รายอื่นที่ไม่มีอยู่จริง [ป้องกันอีเมล]- จดหมายถูกส่งผ่านคอมพิวเตอร์โฮสต์คอม ซึ่งช่วยให้คุณเปลี่ยนเส้นทางข้อความได้ (ไม่ได้เปิดใช้งานโหมด "ยอมรับอีเมลสำหรับ domain.com") เมลเซิร์ฟเวอร์ของโดเมน B.com ส่งข้อความไปยังที่อยู่ [ป้องกันอีเมล]ว่าผู้ใช้ [ป้องกันอีเมล]ไม่มีอยู่จริง ในทางกลับกัน เมลโดเมน A.com จะรายงานว่าผู้ใช้ [ป้องกันอีเมล]ยังไม่มีอยู่และส่งข้อความไปยังที่อยู่ [ป้องกันอีเมล]- การเรียกซ้ำทางอ้อมเกิดขึ้น ทีนี้ลองนึกดูว่าไม่ได้มีแค่ข้อความเดียว แต่พูดว่า 100 และแต่ละข้อความมีขนาดอย่างน้อย 1 MB! เป็นผลให้หนึ่งในเซิร์ฟเวอร์ใน chain domain1.com - host.com - domain2.com ควร "ล่ม"


ข้าว. 13.2. การกำหนดค่า sendmail พื้นฐาน

ฉันขอโทษ ฉันนอกประเด็นไปเล็กน้อย มากำหนดค่า sendmail กันต่อ ตั้งค่าโปรโตคอลการส่งข้อความเป็น smtp (โปรโตคอลเกตเวย์เมล)

ข้อมูลนี้เพียงพอแล้วสำหรับ sendmail ของคุณในการทำงาน คุณสามารถตั้งค่าตัวเลือก sendmail เพิ่มเติมได้โดยใช้ netconf

ตอนนี้ให้ sendmail ยอมรับจดหมายจากที่อยู่ที่ได้รับอนุญาตเท่านั้น ในการดำเนินการนี้ คุณไม่จำเป็นต้องกำหนดค่า sendmail เองด้วยซ้ำ คุณเพียงแค่แก้ไขไฟล์ /etc/hosts.allow และ /etc/hosts.deny เท่านั้น รายการแรกประกอบด้วยรายการโฮสต์ที่ได้รับอนุญาตให้เข้าถึงเครื่องนี้ และรายการที่สองประกอบด้วยรายการโฮสต์ที่ถูกปฏิเสธ โปรดทราบ: แม้จะมีชื่อก็ตาม - "อนุญาต" หรือ "ปฏิเสธ" ข้อจำกัดที่กำหนดโดยไฟล์แรกจะเข้มงวดกว่ามาก ตัวอย่างเช่น หากต้องการปฏิเสธการเข้าถึงโฮสต์ทั้งหมดยกเว้นคอมพิวเตอร์บนเครือข่ายของคุณ ให้เพิ่มบรรทัด: 192.168.1 ลงในไฟล์ /etc/hosts.allow

ซึ่งหมายความว่าเครือข่ายมีที่อยู่ 192.168.1.0 และมาสก์ 255.255.255.0 คุณสามารถอ่านเพิ่มเติมเกี่ยวกับรูปแบบของไฟล์ hosts.allow และ hosts.deny ได้โดยการป้อนคำสั่ง man hosts.allow

ตอนนี้ถึงตาของ POP3 แล้ว หลังจากติดตั้งแพ็คเกจ imap คุณจะกำหนดค่าได้เกือบทุกอย่าง เช่น ฉันอยากจะบอกว่าคุณสามารถตรวจสอบการกำหนดค่าได้แล้ว รีสตาร์ท inetd หรือ xinetd daemon ขึ้นอยู่กับว่าคุณใช้อันไหน และป้อนข้อมูลต่อไปนี้:

เทลเน็ต<имя_только_созданного_почтовика> 25

คุณควรเห็นสิ่งนี้เป็นการตอบกลับ:

ลอง 192.168.1.1. - -
เชื่อมต่อกับ 192.168.1.1
ตัวละครหลบหนีคือ
220 de.dhsilabs.com ESMTP ส่งอีเมล 8.11.0/8.8.7 อา. 17 มิ.ย.
2001 10:54:22 +300

ซึ่งหมายความว่า sendmail ใช้งานได้ สิ่งที่เหลืออยู่คือการตรวจสอบว่ามันทำงานได้อย่างถูกต้องเพียงใด เมื่อต้องการทำเช่นนี้ ให้ป้อนข้อมูลต่อไปนี้:

จดหมายจาก: [ป้องกันอีเมล]
220 2.1.0 [ป้องกันอีเมล]- ผู้ส่งตกลง
rcpt ไปที่: [ป้องกันอีเมล]
220 2.1.5 [ป้องกันอีเมล]- ผู้รับ โอเค

หลังจากนั้นให้ป้อนคำสั่ง data จากนั้นข้อความ และเพื่อสิ้นสุดรายการ ให้ใส่จุดในบรรทัดว่าง Sendmail จะรายงานว่าข้อความถูกส่งไปแล้ว (หรือเจาะจงกว่านั้นคืออยู่ในคิวการส่ง) บันทึก [ป้องกันอีเมล]- ชื่อของผู้ใช้ที่คุณจะส่งอีเมลถึง ผู้ใช้จะต้องมีอยู่จริง รายการ den.dhsilabs.com คือชื่อของจดหมายของคุณ

บันทึก. ชื่อ [ป้องกันอีเมล]และ dhsilabs.com เป็นตัวอย่าง คุณต้องระบุค่าของคุณแทน

โปรดทราบว่าโหนด my.host.com ไม่มีอยู่จริง และโปรแกรม sendmail รายงานว่า “ผู้ส่งตกลง” นั่นเป็นเหตุผลว่าทำไมจึงควรเปิดใช้งานตัวเลือก Wait for DNS ในการตั้งค่า sendmail

ตอนนี้คุณต้องเปิดโปรแกรมรับส่งเมล เช่น kmail และรับเมล ใช้การตั้งค่าเครือข่ายต่อไปนี้ใน kmail: เครือข่าย? การส่งอีเมล ตั้งค่า SMTP พอร์ต 25 ชื่อเซิร์ฟเวอร์ - ชื่อเมลของคุณ ในตัวอย่างนี้คือ den.dhsilabs.com จากนั้นเพิ่มบัญชีสำหรับ POP3:

ชื่อผู้ใช้ - den

รหัสผ่าน - รหัสผ่านที่ใช้ในการเข้าสู่ระบบ

เซิร์ฟเวอร์ - den.dhsilabs.com

ดังนั้นคุณควรได้รับข้อความที่คุณป้อนหลังจากข้อมูล ซึ่งอาจทำให้เกิดปัญหากับการจำแนกชื่อ เพื่อหลีกเลี่ยงปัญหาเหล่านี้ คุณต้องกำหนดค่า DNS อย่างถูกต้อง หรือใช้ที่อยู่ IP แทนชื่อเมลเซิร์ฟเวอร์ เมื่อเพิ่มผู้ใช้ใหม่ อย่าลืมตั้งรหัสผ่านเข้าสู่ระบบของพวกเขา หากคุณไม่ทำเช่นนี้และพยายามรับเมลโดยไม่ระบุรหัสผ่าน คุณจะได้รับข้อความ “การตรวจสอบสิทธิ์ล้มเหลว”

การตั้งค่า sendmail ขั้นพื้นฐานทำได้ง่ายมากโดยใช้เครื่องมือกำหนดค่า แต่บางครั้งการตั้งค่าพื้นฐานยังไม่เพียงพอ เพื่อการตั้งค่าที่แม่นยำยิ่งขึ้น คุณต้องทำความคุ้นเคยกับไฟล์การกำหนดค่าของโปรแกรม sendmail

บันทึก.ในกรณีส่วนใหญ่ คุณจะพอใจกับการตั้งค่าพื้นฐานจนกว่าผู้ส่งอีเมลขยะจะพาคุณไปอยู่ภายใต้ “การคุ้มครอง” ของพวกเขา จากนั้นคุณจะต้องอ่านบทที่ 23 เกี่ยวกับวิธีการป้องกันสแปม อย่างไรก็ตาม กฎข้อหนึ่งของ Murphy อาจมีผลบังคับใช้ - ตัวกำหนดค่า sendmail จะไม่ได้รับการพัฒนาสำหรับระบบของคุณ และคุณจะต้องจัดการกับไฟล์การกำหนดค่า

ไฟล์การกำหนดค่า sendmail หลักคือ /etc/sendmail.cf ในบางการกระจาย ไฟล์นี้จะอยู่ในไดเร็กทอรี /etc/mail ว่ากันว่าไฟล์นี้ยาวกว่ารถลีมูซีนของ Bill Gates และได้รับการแก้ไขในโหมด "ตากลัว มือกำลังทำ" หากคุณไม่เชื่อฉัน ให้เปิดไฟล์นี้แล้วคุณจะเห็นเอง เฉพาะผู้ดูแลระบบมืออาชีพหรือผู้พัฒนาโปรแกรม sendmail เท่านั้นที่สามารถแก้ไขไฟล์นี้ด้วยตนเอง

โดยทั่วไปแล้วตัวประมวลผลแมโคร m4 จะใช้ในการแก้ไขไฟล์นี้ ขั้นแรกให้คุณเตรียมไฟล์ mc พิเศษ ไฟล์นี้มีการตั้งค่า .sendmail แต่อยู่ในรูปแบบที่ "อ่านง่าย" มากกว่า เมื่อแก้ไขไฟล์คอนฟิกูเรชัน ขนาดไฟล์ก็จะมีผลเช่นกัน สำหรับการเปรียบเทียบ: ขนาดของไฟล์ mc ของฉันคือ 2459 ไบต์ และขนาดของไฟล์ sendmail.cf คือ 46302 ไบต์ การแก้ไขไฟล์ขนาด 2 กิโลไบต์ถือเป็นเรื่องหนึ่ง แต่ก็เป็นอีกเรื่องหนึ่งหากขนาดไฟล์คือ 46 กิโลไบต์ ไม่เหมือนกับไฟล์กำหนดค่า sendmail คุณจะเข้าใจได้ทันทีว่าไฟล์ mc นั้นมีไว้สำหรับอะไร จากนั้น หลังจากแก้ไขไฟล์ mc แล้ว คุณจะต้องเรียกใช้ตัวประมวลผลแมโคร m4 เพื่อสร้างไฟล์การกำหนดค่า sendmail:

m4 my_config.mc > /etc/sendmail.cf

ก่อนที่จะรันคำสั่งนี้ ฉันขอแนะนำให้บันทึกไฟล์ sendmail.cf ต้นฉบับไว้ที่ใดที่หนึ่งก่อน ในกรณีที่การตั้งค่าไม่ถูกต้อง คุณสามารถกู้คืนได้ตลอดเวลา

ไฟล์คอนฟิกูเรชันดีฟอลต์ ซึ่งใช้โดยตัวประมวลผลแมโคร T4 เพื่อสร้างไฟล์คอนฟิกูเรชันโปรแกรม sendmail (sendmail.cf) จะอยู่ในไดเร็กทอรี /usr/share/sendmail-cf/cf ใน sendmail เวอร์ชันเก่า อาจอยู่ในไดเร็กทอรี /usr/lib/sendmail

โดยทั่วไปแล้วไฟล์นี้จะเรียกว่า sendmail.mc บางครั้งอาจเรียกว่าอย่างอื่น เช่น redhat.mc หากคุณใช้ Red Hat หรือระบบปฏิบัติการที่เข้ากันได้

ตัวอย่างของไฟล์มาตรฐาน /usr/share/sendmail-cf/cf/redhat.mc แสดงอยู่ในรายการ 13.1

รายการ 13.1. ไฟล์ redhat.mc มาตรฐาน

เบี่ยงเบน(-1)
dnl นี่คือไฟล์กำหนดค่าแมโคร sendmail หากคุณทำการเปลี่ยนแปลงไฟล์นี้
DNS คุณต้องติดตั้ง sendmail-cf rpm จากนั้นต้องสร้างไฟล์
dnl new /etc/sendmail.cf โดยการรันคำสั่งต่อไปนี้: dnl
dnl m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
ดีเอ็นแอล
รวม("../m4/cf.m4")
VERSIONID("การตั้งค่าลินุกซ์สำหรับ Red Hat Linux")dnl
OSTYPE("ลินุกซ์")
กำหนด("confDEF_USER_ID","8:12") dnl
ยกเลิกการกำหนด("UUCP_RELAY")dnl
ยกเลิกการกำหนด("BITNET_RELAY")dnl
กำหนด("confAUTO_REBUILD")dnl
กำหนด("confTO_CONNECT", "1m")dnl
กำหนด("confTRY_NULL_MX_LIST",true)dnl
กำหนด("confDONT_PROBE_INTERFACES",true)dnl
กำหนด("PROCMAIL_MAILER_PATH", "/usr/bin/procmail")dnl
กำหนด("ALIAS_FILE", "/eto/aliases")dnl
dnl กำหนด ("STATUS_FILE", "/etc/mail/statistics")dnl
กำหนด("UUCP_MAILER_MAX", "2000000")dnl
กำหนด("conf USERDB_SPEC", "/etc/mail/userdb.db")dnl
กำหนด ("confPRIVACY_FLAGS", "คำเตือนการรับรองความถูกต้อง, novrfy, noexpn, restrictqrun") dnl
กำหนด("confAUTH_OPTIONS", "A")dnl
dnl TRUST_AUTH_MECH ("DIGEST-MD5 CRAM-MD5 เข้าสู่ระบบธรรมดา") dnl
dnl กำหนด ("confAUTH_MECHANISMS", "DIGEST-MD5 CRAM-MD5 เข้าสู่ระบบธรรมดา") dnl
dnl กำหนด("confTO_QUEUEWARN", "4h")dnl
dnl กำหนด("confTO_QUEUERETURN", "5d")dnl
dnl กำหนด("confQUEUE_LA", "12")dnl
dnl กำหนด("confREFUSE_LA", "18")dnl
คุณสมบัติ dnl (delay_checks) dnl
FEATURE("no_default_msa", "dnl")dnl
FEATURE("smrsh",Vusr/sbin/smrsh")dnl
FEATURE("mailertable", "hash-o /etc/mail/mailertable.db")dnl
คุณสมบัติ("virtusertable", "hash –o /etc/mail/virtusertable.db")dnl
คุณสมบัติ (เปลี่ยนเส้นทาง) dnl
คุณสมบัติ (always_add_domain) dnl
คุณสมบัติ(use_cw_file)dnl
คุณสมบัติ(use_ct_file)dnl
คุณสมบัติ(local_procmail, "", "procmail –t –Y –a $h –d $u")dnl
FEATURE("access_db","hash –o /etc/mail/access.db")dnl
FEATURE("blacklist_recipients")dnl
EXPOSED_USER("รูท") dnl
dnl สิ่งนี้จะเปลี่ยน sendmail ให้ฟังบนอุปกรณ์ลูปแบ็ค 127.0.0.1 เท่านั้น
dnl และไม่ใช่บนอุปกรณ์เครือข่ายอื่นๆ แสดงความคิดเห็นนี้ถ้าคุณต้องการ
DNS เพื่อรับอีเมลผ่านเครือข่าย
DAEMON_OPTIONS("พอร์ต=smtp,Addr=127.0.0.1, ชื่อ=MTA")
dnl หมายเหตุ: จำเป็นต้องมีการเชื่อมโยงทั้ง IPv4 และ IPv6 daemon เข้ากับพอร์ตเดียวกัน
dnl แพทช์เคอร์เนล
dnl DAEMON_OPTIONS (xport=smtp,Addr=::1 ชื่อ=MTA-v6 ตระกูล=inet6")
dnl เราขอแนะนำอย่างยิ่งให้แสดงความคิดเห็นเกี่ยวกับเรื่องนี้หากคุณต้องการปกป้อง
dnl ตัวเองจากสแปม อย่างไรก็ตามทั้งโน้ตบุ๊กและผู้ใช้บนคอมพิวเตอร์นั่นเอง
DNS ไม่มี DNS 24x7 จำเป็นต้องมีสิ่งนี้
FEATURE("accept_unresolvable_domains")dnl
คุณสมบัติ dnl ("relay_based_on_MX") dnl
เมลเลอร์(smtp)dnl
MAILER(procmail)dnl
Cwlocalhost.localdomain

เมื่อใช้คำสั่ง FEATURE คุณสามารถเปิดใช้งานฟังก์ชันหนึ่งหรือฟังก์ชันอื่นของโปรแกรม sendmail ได้ ตัวอย่างเช่น ฟังก์ชัน mailertable ได้รับการออกแบบมาเพื่อแทนที่การกำหนดเส้นทางสำหรับโดเมนที่ระบุ คุณสามารถขยายฟังก์ชันการทำงานของโปรแกรม sendmail ได้อย่างง่ายดายโดยเพิ่มฟังก์ชันที่คุณต้องการลงในไฟล์ mc

สมมติว่าคุณต้องการซ่อนชื่อคอมพิวเตอร์ในโดเมน ทำได้ง่ายๆ ด้วยการเพิ่มฟังก์ชัน masquerade_envelope ลงในไฟล์ mc ของคุณ เมื่อต้องการทำเช่นนี้ ให้คัดลอกไฟล์ redhat.mc ไปยังไฟล์ Hide_hosts.me และเพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของไฟล์ Hide_hosts.me:

MASQUERADE_AS(my-domain.ru)dnl
คุณสมบัติ(masquerade_envelope)dnl

จากนั้นรันคำสั่ง:

m4 /usr/share/sendmail-cf/cf/hide_hosts.me> /etc/sendmail.me

แค่นั้นแหละ! ชื่อโหนดจะถูกซ่อน คำอธิบายของฟังก์ชันอื่นๆ แสดงไว้ในตาราง 13.1.

หน้าที่ของโปรแกรม sendmail ตารางที่ 13.1

การทำงาน คำอธิบาย
การเข้าถึง_db กำหนดตารางการเข้าถึง ตารางนี้แสดงรายการโฮสต์ที่ได้รับอนุญาตหรือบล็อกไม่ให้ส่งอีเมลผ่านเซิร์ฟเวอร์อีเมลของคุณ ตัวเลือกนี้ใช้เพื่อต่อสู้กับสแปมอย่างมีประสิทธิภาพ การป้องกันสแปมจะกล่าวถึงโดยละเอียดในส่วนที่มีชื่อเดียวกันในบท 23
ยอมรับ_unresolvable_domains อนุญาตให้ส่งอีเมลไปยังโดเมนที่ไม่ได้รับการยอมรับ
bestmx_is-ท้องถิ่น ข้อความจะได้รับการยอมรับก็ต่อเมื่อรายการเซิร์ฟเวอร์ MX DNS ชี้ไปที่เซิร์ฟเวอร์อีเมลนี้
บัญชีดำ_ผู้รับ "บัญชีดำ". อีกทางเลือกหนึ่งในการต่อสู้กับสแปม จำเป็นต้องมีตัวเลือก access_db เพื่อให้ทำงานได้
DNSBL ใช้สำหรับการขึ้นบัญชีดำ dnsbl ย่อมาจาก DNS Black List ในเวอร์ชันก่อนหน้านี้เรียกว่าตัวเลือกนี้ (แก้ไขบัญชีดำ)
ตารางโดเมน ใช้เพื่อแก้ไขชื่อโดเมน
ทั่วไปได้ ใช้เพื่อเปลี่ยนที่อยู่ส่งในข้อความ
local_procmail ระบุว่าควรส่งอีเมลโดยใช้ยูทิลิตี procmail ในเครื่อง
ส่งไปรษณีย์ได้ แทนที่การกำหนดเส้นทางสำหรับโดเมนที่ระบุ
masquerade_entire_domain ใช้เพื่อปกปิด (ซ่อน) ทั้งโดเมน ฟังก์ชันนี้ต้องใช้ร่วมกับคำสั่ง MASQUERADE AS (หรือ MASQUERADE_DOMAIN) เช่น MASQUERADE_AS(f117.ru)dnl
masquerade_envelope ช่วยให้คุณซ่อนชื่อโฮสต์ของโดเมน แทนที่ฟิลด์ที่ได้รับจากของส่วนหัวของข้อความก่อนที่จะส่งข้อความไปยังผู้อื่น
เปลี่ยนเส้นทาง ใช้เพื่อเปลี่ยนเส้นทางไปยังเมลเซิร์ฟเวอร์อื่น หมายถึงการปฏิเสธที่จะรับจดหมายพร้อมข้อความโปรดลอง
(ลองใช้ที่อยู่นี้)
รีเลย์_based_on_MX อนุญาตการเปลี่ยนเส้นทางเมล (รีเลย์) สำหรับโฮสต์ที่ระบุในระเบียนเซิร์ฟเวอร์ MX DNS เท่านั้น
รีเลย์_โฮสต์_เท่านั้น อนุญาตการถ่ายทอดเฉพาะสำหรับโหนดที่ระบุใน access_db
รีเลย์_เมล_จาก อนุญาตการถ่ายทอดเฉพาะในกรณีที่ผู้ส่งอยู่ในรายการ RELAY ของฐานข้อมูล accessdb
smrsh การใช้เชลล์ sendmail แบบจำกัด
use_cf_file เมื่อระบุฟังก์ชันนี้แล้ว sendmail จะค้นหารายชื่อผู้ใช้ที่เชื่อถือได้ในไฟล์ sendmail.cf
use_cw_file เมื่อระบุฟังก์ชันนี้ sendmail จะค้นหารายการโฮสต์ในเครื่องในไฟล์ sendmail.cw
ใช้งานได้จริง แปลงที่อยู่ของผู้รับเป็นที่อยู่ของผู้ใช้ในเครื่อง

ไฟล์ /etc/mail/sendmail.cw แสดงรายการนามแฝงทั้งหมดสำหรับเมลเซิร์ฟเวอร์ที่กำหนด สมมติว่าชื่อเซิร์ฟเวอร์ของคุณคือ mail.dhsilabs.ru หากผู้ส่งส่งจดหมายไปยังที่อยู่ [ป้องกันอีเมล]จดหมายจะถูกส่งไปยังถ้ำผู้ใช้โดยไม่มีปัญหาใดๆ จะเป็นอย่างไรถ้ามีคนส่งจดหมายถึง [ป้องกันอีเมล]จากนั้นการส่งมอบจะทำให้เกิดปัญหาบางอย่างเนื่องจากไม่ชัดเจนว่าข้อความนั้นถูกส่งไปยังโหนดใดของโดเมน dhsilabs เพื่อแก้ไขปัญหานี้ คุณต้องใส่บรรทัดในไฟล์ sendmail.cw

ก่อนอื่นพูดนอกเรื่องเล็กน้อย

SMTP - Simple Mail Transfer Protocol - บริการในเครือข่าย TCP/IP สำหรับการถ่ายโอนข้อความ (เช่น เมล) โดยปกติแล้วพอร์ต 25 จะใช้สำหรับ SMTP (ดูไฟล์ /etc/services)

POP - Post Office Protocol - ใช้เพื่อรับจดหมายจากเซิร์ฟเวอร์ พอร์ตเริ่มต้นคือ 110 (สำหรับโปรโตคอล POP3)

ตอนนี้ฉันจะพยายามอธิบายวิธีตั้งค่าเมลเซิร์ฟเวอร์ขนาดเล็กโดยใช้ POP3 และ SMTP

ขั้นแรก มาติดตั้งซอฟต์แวร์ที่จำเป็นกันก่อน เราจะต้องมี sendmail และ imap หากคุณใช้ Linux เวอร์ชันที่เข้ากันได้กับ RH คุณจะต้องติดตั้งแพ็คเกจที่เหมาะสม
ฉันใช้
sendmail-8.11.0
imap-4.7c2

ก่อนที่คุณจะเริ่มกำหนดค่า sendmail คุณต้องกำหนดค่า DNS ให้ถูกต้อง มิฉะนั้นโปรแกรมนี้จะทำงานไม่ถูกต้อง (แม้ว่าคุณจะสามารถกำหนดค่า sendmail ให้ทำงานโดยไม่ต้องใช้ DNS ได้)

มาตั้งค่า sendmail ขั้นพื้นฐานกัน ในการทำเช่นนี้คุณจะต้องเรียกใช้ยูทิลิตี้นี้
เน็ตคอนฟ- มันทำงานได้ทั้งจาก X และจากคอนโซล
ยูทิลิตี้ netconf มีอยู่ใน RH, Mandrake - ฉันไม่รู้เกี่ยวกับเวอร์ชันอื่นอย่างแน่นอน (ไม่มีให้บริการใน KSI Linux) โดยปกติคุณจะต้องเข้าสู่ระบบในฐานะรูท

เลือกจากเมนู ระบบส่งไปรษณีย์, แล้ว การกำหนดค่า sendmail พื้นฐาน
ในฟิลด์ Present your system as เพียงป้อนชื่อโดเมนของคุณ
จากนั้นทำเครื่องหมายในช่อง ยอมรับอีเมลสำหรับ ...
ตั้งค่าโปรโตคอลการส่งข้อความเป็น smtp ( โปรโตคอลเกตเวย์เมล)

ข้อมูลนี้เพียงพอแล้วสำหรับ sendmail ของคุณในการทำงาน
คุณสามารถตั้งค่าตัวเลือกโปรแกรม sendmail เพิ่มเติมได้โดยใช้
เน็ตคอนฟ. หากคุณไม่มี sendmail คุณจะได้รับสิ่งที่น่าจดจำ
ความสุขในการแก้ไขไฟล์ /etc/sendmail.cf ด้วยตนเอง - ในนั้น
การตั้งค่าจะถูกเก็บไว้) :)

ตอนนี้เรามาทำให้ sendmail ยอมรับเมลจากผู้ได้รับอนุญาตเท่านั้น
ที่อยู่ ในการดำเนินการนี้ คุณไม่จำเป็นต้องกำหนดค่า sendmail ด้วยตนเอง เพียงแต่จำเป็นเท่านั้น
แก้ไขไฟล์ /etc/hosts.allow และ /etc/hosts.deny
รายการแรกประกอบด้วยรายชื่อโฮสต์ที่ได้รับอนุญาตให้เข้าถึงสิ่งนี้
รถยนต์และประการที่สอง - ห้าม โปรดทราบ: แม้จะมีชื่อก็ตาม
(อนุญาต | ปฏิเสธ) ข้อจำกัดที่กำหนดโดยไฟล์แรก
เข้มงวดมากขึ้น

ตัวอย่าง. เพื่อปฏิเสธการเข้าถึงโฮสต์ทั้งหมดยกเว้นคอมพิวเตอร์ของคุณ
network เพิ่มบรรทัดลงในไฟล์ /etc/hosts.allow
"192.168.1.
ซึ่งหมายความว่าเครือข่ายมีที่อยู่ 192.168.1.0 และมาสก์ 255.255.255.0
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับรูปแบบของไฟล์ hosts.allow และ hosts.deny
โดยป้อนคำสั่ง man /etc/hosts.allow

หากต้องการรับอีเมลจากโดเมน "ของคุณ" เท่านั้น คุณต้องเพิ่มไปที่
mc (โดยปกติคือ /etc/mail/sendmail.mc) บรรทัดต่อไปนี้ (use
แท็บ ไม่ใช่ช่องว่าง)
LOCAL_CONFIG
FR-o /etc/sendmail.cR

LOCAL_RULESETS
Scheck_rcpt
# อะไรก็ตามที่ยุติภายในเครื่องก็โอเค
ร< $+ @ $=w >$@ตกลง
ร< $+ @ $=R >$@ตกลง

#อะไรก็ได้ที่มีต้นกำเนิดในท้องถิ่นก็โอเค
R$* $: $(หักโควต "" $&(ชื่อลูกค้า) $)
R$=w $@ ตกลง
R$=R$@ ตกลง
R$@ $@ ตกลง

#สิ่งอื่นใดล้วนเป็นของปลอม
R$* $#error$: "550 การรีเลย์ถูกปฏิเสธ"

ตอนนี้สร้างไฟล์ /etc/sendmail.cR และป้อนชื่อโดเมน "ของคุณ" ลงไป -
หนึ่งรายการในแต่ละบรรทัด
เฉพาะโดเมนเหล่านี้เท่านั้นที่จะอนุญาตให้ผู้ส่งจดหมายสามารถรับจดหมายได้ ส่วนคนอื่นๆ จะได้รับ
ข้อความ 550 การส่งต่อถูกปฏิเสธ

ตอนนี้ถึงตาของ POP3 แล้ว หลังจากติดตั้งแพ็คเกจ imap คุณเกือบเสร็จแล้ว
ทุกอย่างถูกจัดเตรียมไว้แล้ว เช่น ฉันอยากจะบอกว่าคุณสามารถตรวจสอบการกำหนดค่าได้แล้ว

ขั้นแรก ให้รีสตาร์ท inetd daemon
หลังจากรีสตาร์ทแล้ว บริการ sendmail และ popd จะถูกเปิดใช้งาน (แม่นยำยิ่งขึ้น
หนึ่ง sendmail และ popd ถูกเรียกตามต้องการ)

ลองดังต่อไปนี้:
เข้าสู่เทลเน็ต<имя_только_созданного_почтовика> 25
คุณควรเห็นสิ่งนี้:
กำลังลอง 192.168.1.1 ...
เชื่อมต่อกับ 192.168.1.1
อักขระหลีกคือ "^]"
220 de.dhsilabs.com ESMTP Sendmail 8.11.0/8.8.7 อา. 17 มิ.ย. 2544 10:54:22 +300

ซึ่งหมายความว่า sendmail ใช้งานได้ สิ่งที่เหลืออยู่คือการตรวจสอบว่าถูกต้องหรือไม่ :)

เข้า
จดหมายจาก: [ป้องกันอีเมล]
220 2.1.0 [ป้องกันอีเมล].... ผู้ส่งตกลง
rcpt ไปที่: [ป้องกันอีเมล]
220 2.1.5 [ป้องกันอีเมล]....ผู้รับโอเค
ตอนนี้ป้อนข้อมูล จากนั้นข้อความของข้อความ เพื่อสิ้นสุดรายการที่เราใส่จุด
บนบรรทัดว่าง

Sendmail จะรายงานว่าข้อความถูกส่งไปแล้ว (หรือเจาะจงมากขึ้นคือวางไว้ใน
ต่อคิวออกเดินทาง)

[ป้องกันอีเมล]-ชื่อผู้ใช้ที่ฉันส่งจดหมายให้
den.dhsilabs.com - ชื่อเมลของฉัน
โปรดทราบว่าโหนด my.host.com ไม่มีอยู่ในธรรมชาติ แต่ผู้ส่งตกลง
นั่นเป็นเหตุผลว่าทำไมจึงควรเปิดใช้งานตัวเลือก Wait for DNS ในการตั้งค่า sendmail

ตอนนี้คุณต้องเปิดโปรแกรมรับส่งเมลเช่น kmail
และหยิบจดหมายขึ้นมา
การตั้งค่าเครือข่ายใน kmail
เครือข่าย -> ชุดส่งเมล SMTP, พอร์ต 25, ชื่อเซิร์ฟเวอร์ -
ชื่อผู้ส่งจดหมายของคุณ
ฉันมี - den.dhsilabs.com

จากนั้นเพิ่มบัญชีสำหรับ POP3
บันทึก - ถ้ำ
รหัสผ่าน - รหัสผ่านที่ใช้ในการเข้าสู่ระบบ
เซิร์ฟเวอร์ - den.dhsilabs.com
พอร์ต - 110

คุณควรได้รับข้อความที่คุณป้อนหลังจากข้อมูล

ไม่น่าเป็นไปได้ที่คุณต้องการ เว็บเซิร์ฟเวอร์ซึ่งไม่สามารถส่งจดหมายจากเว็บไซต์ของคุณได้ ด้านล่างนี้เป็นวิธีง่ายๆ ในการปรับใช้อย่างรวดเร็ว ส่งอีเมลในฐานะ MTA (Mail Transfer Agent) ที่ส่งอีเมลสำหรับไซต์

เริ่มต้นด้วย การติดตั้ง

Sudo apt-get ติดตั้ง sendmail

สิ่งที่สองและสำคัญที่สุดคือการกำหนดค่าที่ถูกต้องของโฮสต์เอง ผู้ส่งจดหมายจำเป็นต้องทราบอย่างชัดเจนว่าโฮสต์มีชื่อ DNS FQDN อะไรและมีอยู่ในเครือข่ายอันกว้างใหญ่ทั่วโลก

สมมติว่าเซิร์ฟเวอร์ที่ sendmail กำลังทำงานอยู่มีที่อยู่ IP 123.123.123.123

นอกจากนี้เรายังมีชื่อโดเมน domainame.com ซึ่งได้รับการมอบหมายให้กับที่อยู่ IP ของเซิร์ฟเวอร์อย่างถูกต้อง

การแก้ไขไฟล์ /etc/hostsเพื่อให้เซิร์ฟเวอร์ทราบชื่อ DNS ของตัวเอง (โดยธรรมชาติแล้วจะต้องถูกต้องและเป็นของจริง)

Sudo นาโน -w /etc/hosts

บรรทัดที่สองที่ควรเพิ่มคือคำอธิบายชื่อโดเมนของเซิร์ฟเวอร์ การเปรียบเทียบกับที่อยู่ IP ที่แท้จริงของโฮสต์และชื่อระบบภายใน:

127.0.0.1 โลคัลโฮสต์ 123.123.123.123 box1.domainname.com เว็บเซิร์ฟเวอร์ของคุณ

จากนั้นคุณจะต้องทำการเปลี่ยนแปลงไฟล์ /etc/ชื่อโฮสต์

Sudo nano -w /etc/hostname

และป้อนชื่อเซิร์ฟเวอร์ที่ถูกต้องซึ่งป้อนไว้ที่นั่น /etc/hostsในตัวอย่างของเรา นี่คือเว็บเซิร์ฟเวอร์ของคุณ

เนื้อหาของไฟล์ /etc/hostname หลังจากแก้ไข:

เว็บเซิร์ฟเวอร์ของคุณ

หลังจากขั้นตอนเหล่านี้ คุณจะต้องรีสตาร์ทเซิร์ฟเวอร์หรือทำ:

/etc/init.d/hostname รีสตาร์ท และรัน 2 คำสั่ง: ชื่อโฮสต์ ชื่อโฮสต์ -f

หากทุกอย่างถูกต้อง ระบบควรสร้างชื่อเดียวกันในทั้งสองกรณี: เว็บเซิร์ฟเวอร์ของคุณ

ฉันแนะนำ ตรวจสอบการส่งจดหมายดังนั้น

# เทลเน็ต localhost smtp ช่วยให้เรา: กำลังพยายาม::1... กำลังพยายาม 127.0.0.1... เชื่อมต่อกับ localhost แล้ว อักขระหลีกคือ "^]" 220 localhost6.localdomain6 ESMTP ส่งอีเมล 8.14.3/8.14.3/Debian-9.2ubuntu1; พฤหัสบดีที่ 9 ธันวาคม 2553 15:31:17 +0200; (ไม่มี UCE/UBE) การเข้าถึงการบันทึกจาก: localhost.localdomain(OK)- localhost.localdomain ป้อน: HELO localhost ช่วยให้เรา: 250 localhost6.localdomain6 สวัสดี localhost.localdomain ยินดีที่ได้พบคุณ ป้อน: MAIL FROM: [ป้องกันอีเมล]ให้: 250 2.1.0 [ป้องกันอีเมล]... ผู้ส่งตกลง ป้อน: RCPT TO: [ป้องกันอีเมล]ให้: 250 2.1.5 [ป้องกันอีเมล]... ผู้รับ ตกลง ป้อน: DATA ให้เรา: 354 ป้อนเมลลงท้ายด้วย "" ในบรรทัดด้วยตัวเองให้ป้อนข้อความทดสอบ ฉันหวังว่าคุณจะเดาได้ว่าอีเมลข้างต้นควรถูกแทนที่ด้วยอีเมลล่าสุดของคุณที่ Telnet เขียนถึงเรา 250 2.0.0 oB9DVHsE004837 ยอมรับข้อความสำหรับการจัดส่งแล้ว

อันเป็นผลมาจากการดำเนินการตามลำดับคำสั่งไปยังอีเมลที่ระบุ ( [ป้องกันอีเมล]) ข้อความ ("ข้อความทดสอบ") ควรมาถึง

การตั้งค่า php.ini

เกดิต/etc/php5/apache2/php.ini

ค้นหาและแก้ไขบรรทัดถัดไป

sendmail_path = /usr/sbin/sendmail -t -i

ตรวจสอบฟังก์ชัน mail()

เสียงสะท้อนเมล(" [ป้องกันอีเมล],”ข้อความทดสอบ”, “ข้อความทดสอบ,”จาก: [ป้องกันอีเมล]"); ?>

การตั้งค่าเสร็จสมบูรณ์แล้ว ฉันหวังว่าจะได้ผลสำหรับคุณ กำหนดค่า Sendmail บน Ubuntu