ตัวอย่างคำสั่ง smtp หลักการทำงานของโปรโตคอล จำกัดการเข้าถึงตามสถานที่

SMTP(จดหมายธรรมดา โปรโตคอลการถ่ายโอน- โปรโตคอลการถ่ายโอนเมลแบบธรรมดา) คือ โปรโตคอลเครือข่ายมีไว้สำหรับการส่งสัญญาณ อีเมลบนเครือข่าย TCP/IP เอสเอ็มทีพี(ภาษาอังกฤษแบบขยาย SMTP) - ส่วนขยายที่ปรับขนาดได้ของโปรโตคอล SMTP ในปัจจุบัน “โปรโตคอล SMTP” มักจะหมายถึง ESMTP และส่วนขยาย SMTP ใช้พอร์ต TCP 25

โปรโตคอล SMTP ใช้คำสั่งข้อความ ASCII แบบธรรมดาและส่งกลับการตอบกลับที่เข้ารหัสสามอักขระด้วย ข้อความ- โปรโตคอล SMTP อธิบายไว้ใน Internet Request For Comment (RFC) หมายเลข 821 ซึ่งพัฒนาโดย Internet Engineering Task Force (IETF) และเผยแพร่เมื่อวันที่ 21 สิงหาคม 1982 ตั้งแต่นั้นมา ก็ได้มีการแก้ไขหลายครั้ง แต่โดยทั่วไปแล้ว คำสั่งพื้นฐานของโปรโตคอลไม่มีการเปลี่ยนแปลง

คำสั่งไคลเอ็นต์ SMTP พื้นฐาน

ทีมงานเฮโล

ตามคำจำกัดความ คำสั่งโปรโตคอล SMTP จะมีความยาวสี่อักขระ คำทักทายที่ไคลเอ็นต์ส่งไปยังเซิร์ฟเวอร์คือคำสั่ง HELO รูปแบบคำสั่งมีดังนี้:

ชื่อโดเมน HELO

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

เมื่อทำงานกับโปรโตคอล SMTP คุณต้องแยกแยะระหว่างไคลเอ็นต์ SMTP ผู้ใช้ไคลเอ็นต์และโฮสต์ไคลเอ็นต์ไม่ใช่สิ่งเดียวกัน เมื่อสร้างข้อความอีเมล ผู้ใช้ระบบอีเมลจะเป็นไคลเอนต์ของโฮสต์ภายในเครื่องของเขาด้วย เมื่อส่งข้อความเมลแล้ว ข้อความนั้นจะไม่ใช่ไคลเอ็นต์ของกระบวนการ SMTP อีกต่อไป ขณะนี้คอมพิวเตอร์โฮสต์ในพื้นที่ของเขาจัดการกระบวนการส่งข้อความและทำหน้าที่เป็นไคลเอนต์ SMTP เอง เมื่อ localhost เชื่อมต่อโฮสต์ระยะไกล ในการส่งข้อความโดยใช้โปรโตคอล SMTP จะทำหน้าที่เป็นไคลเอนต์ของกระบวนการ SMTP คำสั่ง HELO จะโฆษณาชื่อโฮสต์ภายในเครื่องว่าเป็นไคลเอ็นต์ ไม่ใช่ผู้ใช้จริง

ใครส่งข้อความ. บ่อยครั้งที่แนวคิดเหล่านี้สับสน ซึ่งทำให้ยากต่อการแก้ไขปัญหาที่เกิดขึ้นในระบบอีเมล

คำสั่งรับรองความถูกต้อง

    การขยายการสนทนา SMTP ด้วยคำสั่ง AUTH มีอธิบายไว้ใน RFC 4954

    ธรรมดา (ใช้การเข้ารหัส Base64)

    เข้าสู่ระบบ (ใช้การเข้ารหัส Base64)

    GSSAPI (อินเทอร์เฟซโปรแกรมแอปพลิเคชันบริการรักษาความปลอดภัยทั่วไป)

DIGEST-MD5 (การรับรองความถูกต้องการเข้าถึงแบบย่อย)

ข้อแตกต่างระหว่าง PLAIN และ LOGIN ก็คือในตัวเลือกแรกการเข้าสู่ระบบ + รหัสผ่านจะถูกส่งในหนึ่งบรรทัดและในตัวเลือกที่สอง - ก่อนอื่นให้เข้าสู่ระบบก่อนจากนั้นจึงเป็นรหัสผ่าน แต่ทั้งหมดจำเป็นต้องเข้ารหัสใน Base64

คำสั่งเมล

คำสั่ง MAIL ใช้เพื่อสร้างเซสชันอีเมลกับเซิร์ฟเวอร์หลังจากส่งคำสั่ง HELO แล้ว ระบุว่าข้อความนี้มาจากใคร รูปแบบคำสั่ง MAIL เป็นดังนี้:

MAIL เส้นทางย้อนกลับ

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

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

ทีมงาน RCPT

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

RCPT เส้นทางไปข้างหน้า

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

RCPT ถึง: เฮลีย์

คำสั่งนี้ระบุว่าควรส่งข้อความถึงผู้ใช้ haley บนเซิร์ฟเวอร์ SMTP ที่ประมวลผลข้อความ ในทำนองเดียวกัน คุณสามารถส่งข้อความไปยังผู้ใช้คอมพิวเตอร์เครื่องอื่นที่ไม่ใช่ผู้ใช้เซิร์ฟเวอร์ SMTP ที่จะส่งข้อความไป พิจารณาตัวอย่างคำสั่งต่อไปนี้:

RCPT ถึง: จดหมายจาก:

คำสั่งที่ส่งไปยังเซิร์ฟเวอร์ SMTP ชื่อ shardrach.smallorg.org บังคับให้เซิร์ฟเวอร์ตัดสินใจว่าจะส่งข้อความหรือไม่ เนื่องจากผู้ใช้ไม่ได้ลงทะเบียนกับเซิร์ฟเวอร์ Shardrach ในเครื่อง เซิร์ฟเวอร์จะต้องกำหนดว่าจะทำอย่างไรต่อไปกับข้อความ ในกรณีนี้ มีการดำเนินการที่เป็นไปได้สามประการสำหรับโฮสต์ Shardrach มาดูพวกเขากันดีกว่า

    โฮสต์ Shardrach สามารถส่งต่อข้อความไปยังผู้รับและส่งคืนการตอบกลับที่ยืนยันไปยังผู้ส่ง (ตกลง) ในกรณีนี้เขาเพิ่มชื่อของเขาลงในเขตข้อมูล คำสั่ง MAIL เพื่อรวมไว้ในเส้นทางข้อความหากจำเป็นเพื่อแจ้งให้ผู้ส่งทราบ

    Shardrach โฮสต์ไม่สามารถส่งต่อข้อความและแจ้งให้ผู้ส่งทราบ พร้อมทั้งยืนยันว่าที่อยู่โฮสต์ meshach.smallorg.org ถูกต้อง ดังนั้นผู้ส่งสามารถลองส่งข้อความอีกครั้งโดยตรงไปที่ meshach.smallorg.org

    Shardrach โฮสต์ไม่สามารถส่งต่อข้อความและส่งการแจ้งเตือนว่าการดำเนินการนี้ไม่สามารถทำได้กับเซิร์ฟเวอร์นี้ จากนั้นผู้ดูแลระบบควรวิเคราะห์สาเหตุของสิ่งที่เกิดขึ้น

ในยุคแรก ๆ ของอินเทอร์เน็ต ข้อความอีเมลถูกส่งแบบสุ่มสี่สุ่มห้าระหว่างคอมพิวเตอร์ทั่วโลกโดยใช้อัลกอริธึมการส่งข้อมูลดั้งเดิม ข้อความเมล.

คำสั่งข้อมูล

คำสั่งนี้เป็นคำสั่งหลักในโปรโตคอล SMTP หลังจากประมวลผลคำสั่ง MAIL และ RCPT แล้ว คำสั่ง DATA จะถูกใช้เพื่อส่งส่วนข้อมูลของข้อความ รูปแบบคำสั่ง DATA เป็นดังนี้:

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

.

หลังจากได้รับลำดับนี้ เซิร์ฟเวอร์ SMTP "เข้าใจ" ว่าการส่งข้อความเสร็จสมบูรณ์ และควรส่งคืนรหัสตอบกลับที่จะแจ้งให้ไคลเอ็นต์ทราบว่าข้อความได้รับการยอมรับแล้ว

ส่งคำสั่ง

คำสั่ง SEND ใช้เพื่อส่งข้อความเมลโดยตรงไปยังเทอร์มินัลของผู้ใช้ที่ลงทะเบียนของระบบ คำสั่งนี้จะดำเนินการเฉพาะเมื่อผู้ใช้เข้าสู่ระบบ และโดยปกติจะเป็นข้อความป๊อปอัป คล้ายกับคำสั่งเขียนใน UNIX คำสั่งนี้มีข้อเสียเปรียบอย่างร้ายแรง: ผู้ใช้ภายนอกสามารถระบุได้ว่าใครอยู่ด้วยความช่วยเหลือ ในขณะนี้อยู่ในระบบ “โอกาส” นี้ถูกใช้อย่างแข็งขันโดยแฮกเกอร์มาเป็นเวลานานเพื่อรับ ID ผู้ใช้อินเทอร์เน็ตจากเหยื่อที่ไม่สงสัยที่เข้าสู่ระบบ เนื่องจากข้อกังวลด้านความปลอดภัย แพคเกจซอฟต์แวร์ SMTP ส่วนใหญ่ในปัจจุบันจึงไม่มีคำสั่งนี้อีกต่อไป

คำสั่งรีเซ็ต

คำสั่ง RESET ย่อมาจากการรีเซ็ต หากไคลเอนต์สับสนเกี่ยวกับการตอบกลับที่ได้รับจากเซิร์ฟเวอร์ หรือตัดสินใจว่าการเชื่อมต่อขาดหาย ไคลเอนต์สามารถส่งคำสั่ง RSET และส่งคืนเซสชันไปยังจุดเริ่มต้น - โดยดำเนินการคำสั่ง HELO ในกรณีนี้ คำสั่งที่ส่งก่อนหน้านี้ทั้งหมด - MAIL, RCPT และ DATA จะถูกยกเลิก บ่อยครั้งที่คำสั่งนี้ถูกใช้เป็น " วิธีสุดท้าย" เมื่อไคลเอ็นต์สูญเสียลำดับคำสั่งหรือได้รับการตอบสนองที่ไม่คาดคิดจากเซิร์ฟเวอร์

วีอาร์เอฟวาย

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

ชื่อผู้ใช้ VRFY

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

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

1 [riley@ shadrach riley] $ telnet localhost 25 2 กำลังลอง 127.0.0.1... 3 เชื่อมต่อกับ localhost แล้ว 4 อักขระ Escape คือ "^]" 5 220 shadrach.smallorg.org ESMTP ส่งอีเมล 8.9.3/ 8.9.3; พฤหัสบดีที่ 26 สิงหาคม 2542 19:20:16 -050 6 HELO localhost 7 250 shadrach.smallorg.org สวัสดี localhost [127.0.0.1] ยินดีที่ได้พบคุณ 8 VRFY รวย 9 250< rich@ shadrach,smallorg.org>10 VRFY ที่ mechach.smallorg.org 11 252< prez@ mechach.smallorg.org>12 VRFY เจสสิก้า 13 550 เจสสิก้า... ไม่ทราบผู้ใช้ 14 QUIT 15 221 shadrach.smallorg.org ปิดการเชื่อมต่อ 16 การเชื่อมต่อปิดแล้วโดย -เจ้าภาพต่างประเทศ 17 [riley@shadrach ไรลีย์]$

บรรทัดที่ 8-13 แสดงเอาต์พุตของคำสั่ง VRFY บรรทัดที่ 8 พยายามเปิด VRFY ผู้ใช้ท้องถิ่นรวย. การตอบสนองของเซิร์ฟเวอร์ SMTP ในบรรทัดที่ 9 ยืนยันว่ามีผู้ใช้ที่มีชื่อนั้นอยู่ในระบบ และที่อยู่อีเมลแบบเต็มของลูกค้าจะถูกส่งกลับ บรรทัดที่ 10 แสดงตัวเลือกอื่นสำหรับการระบุคำสั่ง VRFY ที่นี่ไคลเอนต์พยายามออกคำสั่ง VRFY ให้กับผู้ใช้ คอมพิวเตอร์ระยะไกล- การตอบสนองที่ได้รับในบรรทัดที่ 11 จากระบบ Shadrach นั้นแตกต่างจากผลลัพธ์ที่ได้รับในบรรทัดที่ 9 ส่วนการตอบสนองของเซิร์ฟเวอร์จะกล่าวถึงความหมายของรหัสที่ส่งคืนโดยเซิร์ฟเวอร์โดยละเอียดยิ่งขึ้น ในกรณีของเรา โปรดทราบว่าระบบ Shadrach จะแจ้งให้ไคลเอ็นต์ทราบว่าเมลจะถูกส่งต่อไปยังผู้ใช้ prez บนเซิร์ฟเวอร์ระยะไกล meshach.smallorg.org บรรทัดที่ 12 แสดงความพยายามที่จะตรวจสอบชื่อที่ไม่มีอยู่ในระบบ meshach การตอบสนองของเซิร์ฟเวอร์ SMTP ในบรรทัดที่ 13 นั้นอธิบายได้ในตัว

    ตรวจสอบการมีอยู่ของผู้ใช้โดยใช้ bash และ curl $เอคโค-อี "วีอาร์เอฟวาย จดหมายจาก:\nเลิก"- curl telnet:// mail.example.com:25 220 mail.1-talk.com ESMTP Postfix 252 2.0.0 ชื่อผู้ใช้@ example.com 221 2.0.0 บาย

ทีม น.อ

คำสั่ง NOOP ย่อมาจาก ไม่มีการดำเนินการ คำสั่งนี้ไม่มีผลกับเซิร์ฟเวอร์ SMTP ยกเว้นว่าเซิร์ฟเวอร์ส่งคืนโค้ดตอบกลับเชิงบวก ใช้เมื่อทดสอบการเชื่อมต่อโดยไม่ต้องส่งต่อข้อความ

คำสั่งออกจาก

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

รูปแบบข้อความ (อีเมล)

ฟิลด์ส่วนหัวมาตรฐานตาม RFC 822

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

รูปแบบข้อความตาม RFC 822

    ฟิลด์ส่วนหัวที่ได้รับ

รูปแบบฟิลด์ส่วนหัวที่ได้รับ: เป็นดังนี้:

ได้รับ: จากชื่อโฮสต์ตามชื่อโฮสต์ผ่านฟิสิคัลพาธพร้อมรหัสโปรโตคอล message-id สำหรับปลายทางอีเมลสุดท้าย

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

    ฟิลด์ส่วนหัว Return-Path

รูปแบบของฟิลด์ส่วนหัวนี้เป็นดังนี้:

เส้นทางกลับ: เส้นทาง

เซิร์ฟเวอร์ SMTP สุดท้ายในห่วงโซ่การส่งต่อจะเพิ่มฟิลด์ Return-Path ให้กับข้อความ มีวัตถุประสงค์เพื่อกำหนดเส้นทางที่ข้อความไปถึงผู้รับ หากข้อความถูกส่งโดยตรงไปยังเซิร์ฟเวอร์ของผู้รับ จะมีเพียงที่อยู่เดียวเท่านั้นที่จะแสดงในช่องนี้ มิฉะนั้นมันจะแสดงที่นี่ รายการทั้งหมดเซิร์ฟเวอร์ที่ข้อความส่งผ่านไปยังผู้รับ อาจแตกต่างจาก MAIL FROM (นั่นคือ ที่อยู่ผู้ส่งอาจระบุแตกต่างจากที่อยู่ของผู้ส่ง)

    ฟิลด์ส่วนหัวของผู้สร้าง

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

ตอบกลับ: ที่อยู่

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

    ส่งฟิลด์ส่วนหัวอีกครั้ง

ฟิลด์ส่วนหัว Resent ระบุข้อความอีเมลที่ไคลเอ็นต์ต้องส่งอีกครั้งด้วยเหตุผลบางประการ รูปแบบของฟิลด์นี้เป็นดังนี้:

ส่งซ้ำ-ตอบกลับ: ที่อยู่

    ฟิลด์ส่วนหัวที่แท้จริง

ข้อมูลฟิลด์ส่วนหัวระบุผู้ส่ง อีเมล- รูปแบบฟิลด์จริง:

จาก: ชื่อผู้ใช้ ผู้ส่ง: ชื่อผู้ใช้

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

ช่อง Resent-authentic ระบุผู้ส่งข้อความที่ได้รับการส่งซ้ำโดยโปรแกรมไคลเอนต์ด้วยเหตุผลบางประการ รูปแบบของฟิลด์เหล่านี้มีดังนี้:

Resent-From: date-time Resent-Sender: date-time ช่อง Resent-From: และ Resent-Sender: ทำงานคล้ายกับช่อง From: และ Sender: พวกเขาเพียงสะท้อนว่าข้อความถูกส่งซ้ำโดยลูกค้าโดยไม่ทราบสาเหตุ

ช่องส่วนหัวของวันที่

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

วันที่: วันที่-เวลา ส่งใหม่-วันที่: วันที่-เวลา ช่องวันที่: จะส่งต่อข้อมูลในส่วนหัวของข้อความเหมือนกับข้อความต้นฉบับทุกประการ ตัวเลือกนี้จะมีประโยชน์ในการติดตามระยะเวลาของการตอบกลับ โดยเฉพาะการตอบกลับหลายรายการ

    ช่องส่วนหัวของปลายทาง

ช่องส่วนหัวปลายทางระบุที่อยู่อีเมลของผู้รับข้อความ ช่องเหล่านี้เป็นข้อมูลเพียงอย่างเดียว เซิร์ฟเวอร์ SMTP จะไม่ส่งข้อความไปยังกล่องจดหมายของผู้ใช้ไม่ว่ากรณีใดๆ จนกว่าจะได้รับคำสั่ง RCPT ที่ออกให้ ผู้ใช้ที่กำหนด(ดูหัวข้อ "คำสั่งไคลเอ็นต์ SMTP พื้นฐาน") รูปแบบของฟิลด์เหล่านี้มีดังนี้:

ถึง: ที่อยู่ Resent-To: ที่อยู่ CC: ที่อยู่ Resent-CC: ที่อยู่ BCC: ที่อยู่ Resent-BCC: ที่อยู่

ช่องถึง:, CC: และ BCC: จะตั้งค่าอัลกอริทึมการประมวลผลอีเมลมาตรฐาน แพ็คเกจอีเมลส่วนใหญ่ใช้คำศัพท์นี้เพื่อจำแนกผู้รับข้อความ ฟิลด์ CC: คล้ายกับบันทึกช่วยจำ และผู้รับที่ระบุในนั้นควรได้รับ "สำเนา" ของข้อความ แนวคิดใหม่อีกประการหนึ่งที่นำเสนอโดยระบบอีเมลคือ BCC: หรือสำเนาลับ ช่อง "สำเนาที่มองไม่เห็น" ยังระบุถึงผู้รับสำเนาข้อความด้วย แต่ที่อยู่ของเขาไม่ปรากฏแก่บุคคลภายนอก (ซึ่งไม่มีจริยธรรมโดยสิ้นเชิง) มีการถกเถียงกันเกี่ยวกับตัวเลือกนี้เกี่ยวกับจรรยาบรรณคอมพิวเตอร์ แต่ปัจจุบันโปรแกรมอีเมลเกือบทั้งหมดรองรับคุณสมบัตินี้

    ฟิลด์ส่วนหัวเพิ่มเติม

ฟิลด์ตัวเลือกคือฟิลด์ที่ระบุข้อความอย่างละเอียดไปยังเซิร์ฟเวอร์ SMTP แต่ตาม RFC 822 อาจไม่ปรากฏในข้อความ อย่างไรก็ตาม ขณะนี้สาขาเหล่านี้แพร่หลายและหลายท่านจะต้องจัดการกับสิ่งเหล่านี้ รูปแบบของบางส่วนมีดังนี้:

Message-ID: message-id Resent-Message-ID: message-id ในการตอบกลับ: message-id การอ้างอิง: message-id คำสำคัญ: ข้อความ - รายการ หัวเรื่อง: ข้อความ ความคิดเห็น: ข้อความ เข้ารหัส: word

ชุดที่มีประโยชน์และใช้บ่อยที่สุดคือช่องหัวเรื่อง: โปรแกรมอีเมลส่วนใหญ่อนุญาตให้ผู้ส่งป้อนบรรทัดหัวเรื่องหนึ่งบรรทัดที่อธิบายเนื้อหาของข้อความถึงผู้รับ บรรทัดข้อความนี้มักใช้โดยโปรแกรมเมลไคลเอ็นต์เมื่อสร้างรายการข้อความที่ได้รับ ฟิลด์ทางเลือกอื่นยังช่วยระบุข้อความเมลด้วย ช่องนี้คือ Message-ID: (ตัวระบุข้อความ) ฟิลด์นี้จะกำหนดหมายเลขประจำตัวที่ไม่ซ้ำกันให้กับข้อความ ซึ่งสามารถปรากฏในข้อความที่ส่งคืนได้ ช่องการเข้ารหัสพิเศษ เข้ารหัสแล้ว: ระบุว่าข้อความได้รับการเข้ารหัสเพื่อความปลอดภัยหรือไม่ และในคำสำคัญ: สามารถตั้งค่าได้ คำหลักซึ่งสามารถใช้เพื่อค้นหาข้อความเฉพาะที่พบในข้อความ

ข้อมูลไบนารีและ MIME

อัลกอริธึมการเข้ารหัส MIME จะคำนึงถึงประเภทด้วย ไฟล์ไบนารีอยู่ระหว่างการแปลงและข้อมูลเพิ่มเติมเกี่ยวกับไฟล์จะถูกส่งไปยังตัวถอดรหัส อัลกอริธึม MIME อนุญาตให้วางข้อมูลไบนารี่ลงในข้อความเมลมาตรฐานโดยตรง ตามที่ระบุโดย RFC 822 มีการสร้างฟิลด์ส่วนหัวใหม่ห้าฟิลด์เพื่ออธิบายข้อมูลไบนารีที่ฝังอยู่ในข้อความรูปแบบ RFC 822 โปรแกรมเมลที่รองรับมาตรฐาน MIME จะต้องจัดการประเภทส่วนหัวใหม่เหล่านี้ทั้งหมดอย่างถูกต้อง

    ช่องส่วนหัวเวอร์ชัน MIME

ช่องส่วนหัวที่ไม่บังคับช่องแรกจะมีเวอร์ชัน MIME ที่ผู้ส่งใช้ในการเข้ารหัสข้อความ ขณะนี้ฟิลด์นี้เป็น 1.0 เสมอ

    ฟิลด์เนื้อหา-การถ่ายโอน-การเข้ารหัส

ฟิลด์ส่วนหัว Content-Transfer-Encoding ระบุว่าข้อมูลไบนารีถูกล้อมไว้ในข้อความ ASCII อย่างไร วันนี้มีเซเว่น ในรูปแบบต่างๆการเข้ารหัสข้อมูลไบนารี่ แต่การเข้ารหัส base64 เป็นวิธีที่พบได้บ่อยที่สุด วิธีการเข้ารหัสนี้จะแปลงบล็อกข้อมูลไบนารี่ 6 บิตเป็นบล็อก 8 บิตที่อ่านเป็นข้อความ ASCII

    ช่อง Content-ID

ฟิลด์ส่วนหัวนี้ใช้เพื่อระบุเซสชัน MIME ด้วยรหัส ID เฉพาะเมื่อเนื้อหามีความซับซ้อน

    ฟิลด์เนื้อหา-คำอธิบาย

ฟิลด์ส่วนหัวคำอธิบายเนื้อหาใช้เพื่อจัดเตรียมคำอธิบายข้อความ ASCII ของข้อมูลที่รวมอยู่ในข้อความเมล สะดวกเมื่อส่งเอกสารที่สร้างโดยใช้ โปรแกรมประมวลผลคำหรือกราฟิกที่ไม่ต่างจากการเข้ารหัส base64

ฟิลด์ส่วนหัวของประเภทเนื้อหา

    ฟิลด์ส่วนหัวของประเภทเนื้อหา

ช่องชื่อเรื่องนี้เป็นที่ที่การดำเนินการหลักในการเล่นของเราเกิดขึ้น ช่องนี้ระบุข้อมูลที่มีอยู่ในข้อความ MIME ปัจจุบันมีคลาสข้อมูลหลักเจ็ดคลาสที่ระบุใน MIME แต่ละคลาสมีคลาสย่อยของตัวเองซึ่งอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับประเภทของข้อมูลที่มีอยู่ในข้อความ

ประเภทข้อมูลข้อความระบุข้อมูล ASCII ที่ควรอ่านในรูปแบบดิบ นอกจากนี้ยังมีคลาสย่อยอีกสองคลาสที่นี่ - ข้อความธรรมดา เช่น ข้อความ ASCII ที่ไม่ได้จัดรูปแบบ และข้อความที่ได้รับการตกแต่ง ซึ่งรวมถึงองค์ประกอบการจัดรูปแบบที่คล้ายกับข้อความที่ได้รับการตกแต่งแล้ว รูปแบบข้อความ- โปรแกรมอีเมลล่าสุดสามารถรองรับ Rich Text Format (RTF) ได้

ชนิดข้อมูลข้อความช่วยให้โปรแกรมอีเมลสามารถส่งได้ ข้อความง่ายๆในรูปแบบ RFC 822 คลาสย่อยประเภทนี้คือ rfc822 ซึ่งระบุว่าเป็นไฟล์แนบ ข้อความปกติเป็นไปตาม RFC 822; บางส่วน ซึ่งช่วยให้คุณสามารถแบ่งข้อความยาว ๆ ออกเป็นหลาย ๆ ส่วน และเนื้อหาภายนอก ซึ่งช่วยให้คุณวางตัวชี้ไปยังวัตถุที่ไม่ได้เป็นส่วนหนึ่งของข้อความ

ประเภทข้อมูลรูปภาพระบุการแนบข้อมูลไบนารีซึ่งแสดงภาพกราฟิกกับข้อความ ขณะนี้มีคลาสย่อยสองคลาสที่กำหนดไว้สำหรับประเภทนี้ - jpeg และ gif

ประเภทข้อมูลวิดีโอจึงระบุว่าข้อมูลที่แนบกับข้อความนั้นเป็นข้อมูลวิดีโอ ขณะนี้มีคลาสย่อยเพียงคลาสเดียวที่กำหนดไว้สำหรับประเภทนี้ นั่นคือรูปแบบ MPEG

ประเภทข้อมูลเสียงหมายถึงเนื้อหาข้อความเป็นข้อมูลเสียง (ไฟล์เสียง) จนถึงขณะนี้ มีการกำหนดคลาสย่อยพื้นฐานเพียงคลาสเดียวเท่านั้น ซึ่งสอดคล้องกับช่อง ISDN หนึ่งช่องที่มีความถี่การสุ่มตัวอย่าง 8 KHz

ประเภทข้อมูลแอปพลิเคชันสอดคล้องกับข้อมูลไบนารีที่แนบมากับข้อความที่เป็นแอปพลิเคชัน (เช่น อิเล็กทรอนิกส์ ตารางไมโครซอฟต์ Excel หรือเอกสารที่สร้างโดยใช้ข้อความ โปรเซสเซอร์ไมโครซอฟต์คำ). จนถึงปัจจุบัน มีการกำหนดคลาสย่อยสองคลาสของข้อมูลประเภทนี้ - postscript และ octet-stream บ่อยครั้งที่คลาสย่อย octet-stream ถูกใช้เมื่อแนบข้อมูลแอปพลิเคชันเข้ากับข้อความ เช่น เอกสารไมโครซอฟต์คำหรือสเปรดชีต ไมโครซอฟต์ เอ็กเซล.

ประเภทข้อมูลแบบหลายส่วนจะระบุข้อความที่มีประเภทข้อมูลที่แตกต่างกันหลายประเภท รูปแบบนี้ค่อนข้างพบได้ทั่วไปในโปรแกรมอีเมลที่รองรับเอาต์พุตข้อความในหลายวิธี เช่น ข้อความ ASCII ข้อความ HTMLหรือไฟล์เสียง ตัวระบุขอบเขตจะแยกข้อมูลประเภทต่างๆ ในเวลาเดียวกัน ข้อมูลแต่ละประเภทจะถูกระบุโดยฟิลด์ส่วนหัวของประเภทข้อมูลเฉพาะ ชนิดข้อมูลแบบหลายส่วนมีคลาสย่อยสี่คลาส

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

1 $ telnet localhost 25 2 กำลังลอง 127.0.0.1... 3 เชื่อมต่อกับ localhost แล้ว 4 อักขระ Escape คือ "^]" 5 220 shadrach.smallorg.org ESMTP ส่งอีเมล 8.9.3/8.9.3; วันจันทร์ที่ 30 สิงหาคม 1999 07:36:58 -050 6 HELO localhost 7 258 shadrach.smallorg.org สวัสดี localhost ยินดีที่ได้พบคุณ 8 MAIL FROM:rich@localhost 9 250 rich@localhost... ผู้ส่ง ok 10 RCPT TO: รวย 11 250 รวย... ผู้รับ ตกลง 12 ข้อมูล 13 354 ป้อนเมลลงท้ายด้วย "." ในบรรทัดเอง 14 จาก:"ริช บลัม" 15 ถึง: "รวย" 16 เรื่อง:การทดสอบข้อความที่จัดรูปแบบ 17 เวอร์ชัน MIME: 1.0 18 ประเภทเนื้อหา: หลายส่วน/ทางเลือก; ขอบเขต=ขอบเขต1 19 20 –bounds1 21 ประเภทเนื้อหา: ข้อความ/ธรรมดา; charset=us-ascii 22 23 นี่คือส่วนข้อความธรรมดาของข้อความที่โปรแกรมอ่านอีเมลธรรมดาสามารถอ่าน 24 ได้ 25 26 –-bounds1 27 Context-Type: text/enriched 28 29 นี่คือ ข้อความที่หลากหลายรุ่นของ เดียวกันข้อความ. 30 31 –-bounds1-- 32 . 33 250 MAA04305 ข้อความได้รับการยอมรับสำหรับการจัดส่ง 34 QUIT 35 221 shadrach.smallorg.org การเชื่อมต่อปิด 36 การเชื่อมต่อถูกปิดโดยโฮสต์ต่างประเทศ 37 คุณมีเมลใหม่ใน /var/spool/mail/rich 38 $

รายการ 5.6 ตัวอย่างเซสชัน SMTP พร้อมไฟล์แนบ MIME หลายรายการ (html, txt) ข้อความตัวอย่างที่แสดงในรายการ 5.6 เป็นข้อความ MIME ที่มีสองส่วน บรรทัดที่ 18 แสดงประเภทข้อมูลของข้อความ ประเภทหลายส่วน/ทางเลือก บ่งชี้ว่าข้อความมีข้อมูลประเภทต่างๆ ที่คั่นด้วยตัวคั่น bounds1 ข้อมูลประเภทแรกเริ่มต้นที่บรรทัดที่ 21 และเป็นข้อความ ASCII ธรรมดาที่โปรแกรมอีเมลเกือบทุกโปรแกรมสามารถอ่านได้

ข้อมูลประเภทที่สองเริ่มต้นที่บรรทัดที่ 27 และเป็น Rich Text โดยใช้รูปแบบ Rich Text

เพราะ ประเภทไมม์ที่ระบุไว้สำหรับข้อความเป็นแบบหลายส่วน/เป็นทางเลือก ดังนั้นการกำหนดเวอร์ชันของไฟล์แนบที่จะแสดงนั้นขึ้นอยู่กับโปรแกรมอีเมลทั้งหมด

โปรโตคอล SMTP ที่ปรับปรุงแล้ว

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

ในปี 1995 ก็ได้รับการปล่อยตัว เอกสารอาร์เอฟซีพ.ศ. 2412 โดยมีการกำหนดวิธีการขยายขีดความสามารถของโปรโตคอล SMTP เรียกว่า "บริการ SMTP แบบขยาย"

Extended SMTP มีการใช้งานดังนี้ เมื่อเริ่มต้นเซสชัน SMTP คำสั่ง HELO จะถูกแทนที่ด้วยคำสั่งคำเชิญ - EHLO เมื่อเซิร์ฟเวอร์ SMTP ได้รับคำสั่งดังกล่าว หมายความว่าไคลเอ็นต์สามารถส่งคำสั่งเพิ่มเติมได้ คำสั่ง SMTP- รายการ 5.7 แสดงเซสชันตัวอย่างโดยใช้ EHLO เช่นเดียวกับคำสั่งเพิ่มเติม

1 $ telnet localhost 25 2 กำลังลอง 127.0.0.1... 3 เชื่อมต่อกับ localhost แล้ว 4 อักขระ Escape คือ "^]" 5 220 shadrach.smallorg.org ESMTP ส่งอีเมล 8.9.3/8.9.3; จันทร์ที่ 30 สิงหาคม 2542 16:36:48 -050 6 EHLO localhost 7 250-shadrach.smallorg.org สวัสดี localhost ยินดีที่ได้พบคุณ 8 250-EXPN 9 250-VERB 10 250-8BITMIME 11 250-SIZE 12 250-DSN 13 250-ONEX 14 250-ETRN 15 250-XUSR 16 250 ช่วยเหลือ 17 ช่วยเหลือ DSN 18 214-MAIL จาก: [ RET=( เต็ม || HDRS) ] [ ENVID= ] 19 214-RCPT ถึง: [ แจ้งเตือน=(ไม่เคย สำเร็จ ล้มเหลว ล่าช้า) ] 20 214- [ ORCPT= ] 21 214- การแจ้งเตือนสถานะการจัดส่ง SMTP 22 214-Descriptions: 23 214- RET ส่งคืนข้อความแบบเต็มหรือเฉพาะส่วนหัวเท่านั้น 24 214- "ตัวระบุซองจดหมาย" ของผู้ส่ง ENVID สำหรับการติดตาม 25 214- แจ้งเตือน เมื่อจะส่ง DSN หลายตัวเลือกก็โอเค เครื่องหมายจุลภาค - 26 214- คั่นด้วย ไม่ต้องปรากฏด้วยตัวเอง 27 214- ORCPT ผู้รับดั้งเดิม 28 214 สิ้นสุดข้อมูลความช่วยเหลือ 29 ช่วยเหลือ ETRN 30 214-ETRN [ | @ | #] 31 214- รันคิวตามที่ระบุ หรือ 32 214- โฮสต์ทั้งหมดภายในที่กำหนด หรือชื่อพิเศษ 33 214- (เฉพาะการดำเนินการ) 34 214 สิ้นสุดข้อมูลความช่วยเหลือ 35 QUIT 36 221 shadrach.smallorg.org การปิดการเชื่อมต่อ 37 การเชื่อมต่อถูกปิดโดยโฮสต์ต่างประเทศ 38 ดอลลาร์

บรรทัดที่ 6 ระบุคำสั่ง EHLO SMTP เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ SMTP บรรทัดที่ 7–16 แสดงการตอบสนองของเซิร์ฟเวอร์ โปรดทราบว่าเซิร์ฟเวอร์จะส่งสัญญาณว่ามีคำสั่งเพิ่มเติมให้ใช้งาน เช่น เซสชันจะเกิดขึ้นในโหมด "ขยาย" กลุ่มคำสั่งใหม่กลุ่มหนึ่งเรียกว่าพารามิเตอร์การแจ้งเตือนสถานะการจัดส่ง พารามิเตอร์เหล่านี้สามารถใช้กับคำสั่ง MAIL และ RCPT เพื่อแสดงสถานะการจัดส่ง ข้อความเฉพาะอีเมล. อย่างไรก็ตาม สำหรับเราในฐานะผู้ดูแลระบบเมล คำสั่ง ETRN ถือเป็นที่สนใจอย่างยิ่ง

คำสั่ง TURN ได้รับการกล่าวถึงก่อนหน้านี้แล้ว คำสั่งนี้มีประสิทธิภาพมาก แต่น่าเสียดายที่ไม่ปลอดภัย เพื่อชดเชยข้อบกพร่องนี้ RFC 1985 กำหนดไว้ การใช้งานใหม่คำสั่ง TURN ซึ่งให้ระดับความปลอดภัยที่มากขึ้น คำสั่ง ETRN อนุญาตให้ไคลเอนต์ SMTP ส่งคำขอไปยังเซิร์ฟเวอร์ SMTP เพื่อเริ่มต้นการเชื่อมต่อ SMTP อื่นกับไคลเอนต์เพื่อส่งข้อความถึงมัน ข้อแตกต่างระหว่างคำสั่ง ETRN และคำสั่ง TURN คือคำขอไม่ได้ใช้การเชื่อมต่อที่มีอยู่ แต่เพื่อเปิดเซสชัน SMTP ใหม่ ด้วยวิธีนี้ เซิร์ฟเวอร์ SMTP สามารถเชื่อมต่อกับคอมพิวเตอร์ไคลเอนต์โดยใช้อัลกอริธึมการจำแนกชื่อ DNS ปกติ ในกรณีนี้ การเปิดการเชื่อมต่อใหม่ไม่ได้ขึ้นอยู่กับชื่อที่คอมพิวเตอร์ไคลเอนต์ลงทะเบียนไว้บนเซิร์ฟเวอร์ แต่ขึ้นอยู่กับชื่อโฮสต์ที่แท้จริงของไคลเอนต์ ในกรณีนี้ หากแฮกเกอร์สร้างการเชื่อมต่อ SMTP ที่ไม่ได้รับอนุญาตและใช้คำสั่ง ETRN เซิร์ฟเวอร์ SMTP จะสร้างการเชื่อมต่อใหม่ด้วย ลูกค้าจริงและส่งต่ออีเมล์ให้เขา ส่งผลให้ไม่มีผู้เสียชีวิต รูปแบบคำสั่ง ETRN เป็นดังนี้:

ในที่นี้ บทบาทของชื่ออาจเป็นได้ทั้งชื่อโฮสต์หรือชื่อโดเมน (หากมีคำขอรับเมลสำหรับทั้งโดเมน) ทีม ETRN เป็นความช่วยเหลือที่ดีมากสำหรับผู้ดูแลระบบอีเมล หากผู้ให้บริการอินเทอร์เน็ตของคุณเก็บเมลไว้สำหรับเมลเซิร์ฟเวอร์ของคุณ การใช้คำสั่งนี้คุณสามารถแจ้งได้ว่าพร้อมที่จะรับเมลที่รวบรวมไว้สำหรับคุณ มีหลายวิธีในการใช้อัลกอริทึมดังกล่าว หนึ่งในนั้นคือการใช้แบบพิเศษ โปรแกรมเพิร์ลที่มาพร้อมกับโปรแกรม sendmail งานของมันคือหลังจากสร้างการเชื่อมต่อกับผู้ให้บริการอินเทอร์เน็ตแล้ว มันจะออกคำสั่ง ETRN พร้อมชื่อโดเมนของคุณเป็นอาร์กิวเมนต์ เมื่อได้รับคำสั่งนี้ เซิร์ฟเวอร์ SMTP ของผู้ให้บริการจะเริ่มต้นการเชื่อมต่อ SMTP อื่นกับเซิร์ฟเวอร์ SMTP ในพื้นที่ของคุณ (ผ่านการเชื่อมต่อ PPP เดียวกัน) และส่งเมลทั้งหมดสำหรับโดเมนของคุณที่อยู่ในคิวสำหรับส่ง

เป็นไปได้ว่าคนส่วนใหญ่ที่อ่านคู่มือนี้จะคุ้นเคยกับเทคโนโลยีการสื่อสารที่ใช้บ่อยที่สุดอยู่แล้ว นั่นก็คืออีเมล แต่คุณเคยคิดบ้างไหมว่ามันทำงานอย่างไร? ในบทความนี้ เราจะได้เรียนรู้วิธีการทำงานของบริการนี้ และ POP3, SMTP และ IMAP คืออะไร

ป๊อป3(โปรโตคอล ที่ทำการไปรษณีย์เวอร์ชัน 3) มักใช้เพื่อสื่อสารกับเซิร์ฟเวอร์อีเมลระยะไกลและดาวน์โหลดข้อความไปยังไคลเอนต์อีเมลในเครื่องแล้วลบทิ้งบนเซิร์ฟเวอร์เช่น Thunderbird, Windows Mail เป็นต้น อย่างไรก็ตาม ไคลเอนต์อีเมลมักจะเสนอทางเลือกว่าจะฝากสำเนาข้อความไว้บนเซิร์ฟเวอร์หรือไม่ หากคุณใช้อุปกรณ์หลายเครื่องในการส่งข้อความ ขอแนะนำให้ปล่อยให้คุณสมบัตินี้เปิดใช้งาน มิฉะนั้น บนอุปกรณ์อื่นคุณจะไม่สามารถเข้าถึงข้อความที่ส่งที่ไม่ได้บันทึกไว้บนเซิร์ฟเวอร์ระยะไกล เป็นที่น่าสังเกตว่า POP3 เป็นโปรโตคอลแบบทางเดียวเท่านั้น ซึ่งหมายความว่าข้อมูลจะถูกนำมา เซิร์ฟเวอร์ระยะไกลและถูกส่งไปยังลูกค้าในพื้นที่

พอร์ต POP3 เริ่มต้นคือ:

พอร์ต 110 – พอร์ตที่ไม่มีการเข้ารหัส

พอร์ต 995 เป็นพอร์ต SSL/TLS หรือที่รู้จักในชื่อ ป๊อป3เอส

ขั้นตอนที่ 2 - ความแตกต่างระหว่าง POP3 และ IMAP และพอร์ตสำหรับ IMAP คืออะไร

IMAP (โปรโตคอลเลเยอร์แอปพลิเคชันสำหรับการเข้าถึงอีเมล) รวมถึง POP3 ใช้เพื่อรับข้อความอีเมลบนไคลเอนต์ในเครื่องอย่างไรก็ตามมีความแตกต่างที่สำคัญ - ดาวน์โหลดเฉพาะส่วนหัวของอีเมลเท่านั้นข้อความของจดหมายจะยังคงอยู่ใน เซิร์ฟเวอร์ โปรโตคอลนี้การสื่อสารทำงานในสองทิศทาง หากมีการเปลี่ยนแปลงบนไคลเอนต์ภายในเครื่อง การสื่อสารจะถูกส่งไปยังเซิร์ฟเวอร์ IMAP ได้รับความนิยมมากขึ้นเมื่อเร็วๆ นี้ เนื่องจากผู้ให้บริการอีเมลยักษ์ใหญ่อย่าง Gmail เริ่มแนะนำให้ใช้แทน POP3

พอร์ต IMAP เริ่มต้นคือ:

  • พอร์ต 143 – พอร์ตที่ไม่มีการเข้ารหัส
  • พอร์ต 993 เป็นพอร์ต SSL/TLS หรือที่รู้จักในชื่อ IMAPS

ขั้นตอนที่ 3 - SMTP โปรโตคอลสำหรับการสื่อสารทางอีเมลขาออก

โปรโตคอลการโอนจดหมายอย่างง่าย ( SMTP) ใช้เพื่อสื่อสารกับเซิร์ฟเวอร์ระยะไกล จากนั้นส่งข้อความจากไคลเอ็นต์ภายในเครื่องไปยังเซิร์ฟเวอร์ระยะไกล และในท้ายที่สุดไปยังเซิร์ฟเวอร์ของผู้รับข้อความ บนเซิร์ฟเวอร์อีเมลของคุณ กระบวนการนี้จะถูกควบคุม บริการพิเศษ (เอ็มทีเอ- เป็นที่น่าสังเกตว่า SMTP ใช้เพื่อส่งข้อความเท่านั้น

พอร์ต SMTP:

  • พอร์ต 25 – พอร์ตที่ไม่มีการเข้ารหัส
  • พอร์ต 465 เป็นพอร์ต SSL/TLS หรือที่เรียกว่า SMTPS

บทสรุป

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

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

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

ไม่ถูกจำกัดโดยระบบย่อยการส่งข้อมูลเฉพาะใดๆ การดำเนินการต้องการเพียงช่องทางที่เชื่อถือได้สำหรับการไหลของการส่งสัญญาณในขณะที่ยังคงรักษาความสงบเรียบร้อย

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

มันใช้ทำอะไร?

นี่คือโปรโตคอลเมลมาตรฐานในปัจจุบัน ทุกคนใช้มัน จดหมายและเซิร์ฟเวอร์

โฮสติ้งเว็บไซต์เสมือนจริงสำหรับ CMS ยอดนิยม:

หลักการทำงานของโปรโตคอล

SMTP เป็นโปรโตคอลข้อความ หลักการทำงานต้องการการเชื่อมต่อที่ผู้ใช้ส่งอีเมลสื่อสารกับผู้รับโดยใช้บรรทัดคำสั่งเฉพาะ และรับข้อมูลผ่านช่องทางการสื่อสารที่เชื่อถือได้ โดยทั่วไปแล้ว ช่องทางการสื่อสารนี้คือการเชื่อมต่อ TCP

เซสชันการทำงานของโปรโตคอลประกอบด้วยจดหมายที่ส่ง - ไคลเอ็นต์ SMTPคำสั่งจำนวนหนึ่งและการตอบกลับของเซิร์ฟเวอร์ ที่ ช่วงการทำงานทั้งไคลเอนต์และเซิร์ฟเวอร์แลกเปลี่ยนพารามิเตอร์ที่จำเป็น

การดำเนินการโปรโตคอลประกอบด้วยการผสมผสานที่ประกอบด้วยลำดับคำสั่งและการตอบกลับต่อไปนี้:

  • คำสั่ง MAIL FROM - ระบุที่อยู่อีเมลที่ส่งคืน
  • คำสั่ง RCPT TO - กำหนดผู้รับจดหมายเฉพาะ
  • DATA เป็นคำสั่งที่รับผิดชอบในการส่งข้อความของข้อความอีเมล นี่คือเนื้อความของตัวอักษร ซึ่งรวมถึงส่วนหัวและเนื้อความของตัวอักษร คั่นด้วยบรรทัดว่าง

ไคลเอนต์ SMTP เริ่มต้นอาจเป็นไคลเอนต์อีเมลของผู้รับหรือตัวแทนการถ่ายโอนเมลบนเซิร์ฟเวอร์

โปรโตคอลเมลอื่นทำงานอย่างไร

SMTP เป็นเพียงโปรโตคอลสำหรับส่งจดหมายบนเครือข่าย เขาไม่สามารถรับข้อความอีเมลจากเซิร์ฟเวอร์ระยะไกลหรือจัดการกล่องอีเมลตามคำสั่งได้

มีโปรโตคอลอื่นๆ สำหรับสิ่งนี้ เช่น IMAP และ POP ควรใช้เมื่อเชื่อมต่อกับเครือข่ายชั่วคราวหรือเมื่อเปิดพีซีเป็นระยะ

โผล่.

Post Office Protocol เป็นโปรโตคอลเครือข่ายธรรมดาที่มีสามรูปแบบ: POP, POP2 และ POP3 ได้รับการออกแบบมาเพื่อส่งข้อความโต้ตอบกับผู้ใช้จากเมลเซิร์ฟเวอร์กลาง ลบเมลออกจากเซิร์ฟเวอร์ และเพื่อระบุตัวผู้ใช้ มีการใช้การเข้าสู่ระบบและรหัสผ่านร่วมกันเพื่อระบุตัวตน เป็นที่น่าสังเกตว่าทั้งสามโปรโตคอลไม่สามารถใช้แทนกันได้

โปรโตคอลนี้รวมถึง SMTP ซึ่งใช้ในการส่งอีเมลขาออก

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

IMAP

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

โปรโตคอลนี้เหมาะสำหรับผู้ใช้ที่คอมพิวเตอร์ใช้การเชื่อมต่ออินเทอร์เน็ตอย่างต่อเนื่อง มันแตกต่างจาก POP ตรงที่เมื่อสแกนข้อความใหม่ จะมีการดาวน์โหลดเฉพาะส่วนหัวเท่านั้น

วันนี้เราจะบอกรายละเอียดเกี่ยวกับโปรโตคอลอินเทอร์เน็ตที่ใช้มากที่สุด - POP3, IMAP และ SMTP แต่ละโปรโตคอลเหล่านี้มีวัตถุประสงค์และฟังก์ชันการทำงานเฉพาะ ลองคิดดูสิ

โปรโตคอล POP3 และพอร์ตต่างๆ

Post Office Protocol 3 (POP3) เป็นโปรโตคอลจดหมายมาตรฐานที่ออกแบบมาสำหรับ รับอีเมลจากเซิร์ฟเวอร์ระยะไกลไปยังไคลเอนต์อีเมล POP3 ช่วยให้คุณสามารถบันทึกข้อความอีเมลลงในคอมพิวเตอร์ของคุณและอ่านได้หากคุณออฟไลน์ สิ่งสำคัญคือต้องทราบว่าหากคุณเลือกใช้ POP3 เพื่อเชื่อมต่อกับบัญชีอีเมลของคุณ อีเมลที่ดาวน์โหลดลงในคอมพิวเตอร์ของคุณแล้วจะถูกลบออกจากเซิร์ฟเวอร์อีเมล ตามตัวอย่าง หากคุณใช้คอมพิวเตอร์หลายเครื่องเพื่อเชื่อมต่อกับบัญชีอีเมลเดียว POP3 อาจไม่ใช่ตัวเลือกที่ดีที่สุดในสถานการณ์นี้ ในทางกลับกัน เนื่องจากเมลถูกจัดเก็บไว้ในเครื่องพีซีของผู้ใช้รายใดรายหนึ่ง วิธีนี้ช่วยให้คุณปรับพื้นที่ดิสก์ให้เหมาะสมบนฝั่งเมลเซิร์ฟเวอร์ได้

ตามค่าเริ่มต้น โปรโตคอล POP3 จะใช้พอร์ตต่อไปนี้:

  • พอร์ต 110 เป็นพอร์ต POP3 เริ่มต้น ไม่ปลอดภัย.
  • พอร์ต 995 – ควรใช้พอร์ตนี้หากคุณต้องการสร้างการเชื่อมต่อที่ปลอดภัย

โปรโตคอล IMAP และพอร์ต

Internet Message Access Protocol (IMAP) เป็นโปรโตคอลอีเมลที่ออกแบบมาเพื่อการเข้าถึงเมลจากไคลเอนต์อีเมลในเครื่อง IMAP และ POP3 เป็นโปรโตคอลยอดนิยมบนอินเทอร์เน็ตที่ใช้ รับอีเมลโปรโตคอลทั้งสองนี้รองรับไคลเอนต์เมลสมัยใหม่ทั้งหมด (MUA - Mail User Agent) และเซิร์ฟเวอร์เว็บ

แม้ว่า POP3 จะอนุญาตให้เข้าถึงเมลจากแอปพลิเคชันเดียว แต่ IMAP อนุญาตให้เข้าถึงจากไคลเอนต์หลายตัว ด้วยเหตุนี้ IMAP จึงปรับเปลี่ยนได้มากที่สุดในกรณีที่ผู้ใช้หลายคนต้องการเข้าถึงบัญชีอีเมลเดียวกัน

ตามค่าเริ่มต้น โปรโตคอล IMAP จะใช้พอร์ตต่อไปนี้:

  • ท่าเรือ 143– พอร์ตเริ่มต้น ไม่ปลอดภัย.
  • พอร์ต 993– พอร์ตสำหรับการเชื่อมต่อที่ปลอดภัย
โปรโตคอล SMTP และพอร์ตต่างๆ

Simple Mail Transfer Protocol (SMTP) เป็นโปรโตคอลมาตรฐานสำหรับ ส่งข้อความเมลผ่านทางอินเทอร์เน็ต

โปรโตคอลนี้อธิบายไว้ใน RFC 821 และ RFC 822 ซึ่งเผยแพร่ครั้งแรกในเดือนสิงหาคม พ.ศ. 2525 ภายในขอบเขตของข้อมูล RFC รูปแบบที่อยู่จะต้องอยู่ในรูปแบบ ชื่อผู้ใช้@ชื่อโดเมน- การส่งไปรษณีย์ก็เหมือนกับงานปกติ บริการไปรษณีย์: เช่น จดหมายถึงที่อยู่ จดหมายจาก:จะถูกตีความดังนี้: ivan_ivanov คือที่อยู่ และ merionet.ru คือ รหัสไปรษณีย์- หากชื่อโดเมนของผู้รับแตกต่างจากชื่อโดเมนของผู้ส่ง MSA (Mail Submission Agent) จะส่งจดหมายผ่าน Mail Transfer Agent (MTA) แนวคิดหลักของ MTA คือการเปลี่ยนเส้นทางจดหมายไปยังที่อื่น โซนโดเมนคล้ายกับวิธีการส่งจดหมายแบบดั้งเดิมไปยังเมืองหรือภูมิภาคอื่น MTA ยังได้รับจดหมายจาก MTA อื่นๆ ด้วย

โปรโตคอล SMTP ใช้พอร์ตต่อไปนี้

4085/2, โปรโตคอล Sorokin D. S. Mail เพื่อต่อสู้กับสแปม

SMTP

SMTP (Simple Mail Transfer Protocol) เป็นโปรโตคอลเครือข่ายที่ใช้กันอย่างแพร่หลายซึ่งออกแบบมาเพื่อส่งอีเมลผ่านเครือข่าย TCP/IP

ธุรกรรม SMTP

SMTP เป็นโปรโตคอลข้อความที่ใช้การเชื่อมต่อซึ่งผู้ส่งข้อความสื่อสารกับผู้รับโดยการออกบรรทัดคำสั่งและรับข้อมูลที่จำเป็นผ่านช่องทางที่เชื่อถือได้ ซึ่งโดยปกติจะเป็นการเชื่อมต่อ TCP (Transmission Control Protocol) เซสชัน SMTP ประกอบด้วยคำสั่งที่ส่งโดยไคลเอนต์ SMTP และการตอบกลับที่เกี่ยวข้องจากเซิร์ฟเวอร์ SMTP เมื่อเซสชันเปิด เซิร์ฟเวอร์และไคลเอนต์จะแลกเปลี่ยนพารามิเตอร์ เซสชันสามารถรวมการดำเนินการ SMTP เป็นศูนย์หรือมากกว่า (ธุรกรรม)

คำสั่ง SMTP

การดำเนินการ SMTP ประกอบด้วยลำดับคำสั่ง/การตอบสนองสามลำดับ:

MAIL FROM - ตั้งค่าที่อยู่ผู้ส่ง (เช่น Return-Path, 53121.จาก, mfrom) นี่คือที่อยู่สำหรับจดหมายที่ส่งคืน

RCPT TO - ตั้งค่าผู้รับ ของข้อความนี้- คำสั่งนี้สามารถให้ได้หลายครั้ง หนึ่งครั้งสำหรับผู้รับแต่ละคน ที่อยู่เหล่านี้เป็นส่วนหนึ่งของเชลล์ด้วย

DATA - เพื่อส่งข้อความของข้อความ นี่คือเนื้อหาของจดหมาย ซึ่งตรงข้ามกับซองจดหมาย ประกอบด้วยส่วนหัวของข้อความและเนื้อหาข้อความที่คั่นด้วยบรรทัดว่าง โดยพื้นฐานแล้ว DATA คือกลุ่มของคำสั่ง และเซิร์ฟเวอร์จะตอบสนองสองครั้ง: อันดับแรกคือคำสั่ง DATA เพื่อแจ้งเตือน

ความพร้อมในการยอมรับข้อความ และครั้งที่สองหลังจากสิ้นสุดลำดับข้อมูลเพื่อยอมรับหรือปฏิเสธตัวอักษรทั้งหมด

นอกเหนือจากการตอบสนองระดับกลางสำหรับคำสั่ง DATA แล้ว การตอบสนองของเซิร์ฟเวอร์แต่ละรายการอาจเป็นค่าบวก (รหัสตอบกลับ 2xx) หรือค่าลบก็ได้ ในทางกลับกันอาจเป็นแบบถาวร (รหัส 5xx) หรือชั่วคราว (รหัส 4xx) เซิร์ฟเวอร์ SMTP ล้มเหลวในการส่งข้อความถือเป็นข้อผิดพลาดถาวร ในกรณีนี้ลูกค้าจะต้องส่งจดหมายส่งคืน หลังจากการรีเซ็ต - การตอบสนองเชิงบวก ข้อความมักจะถูกปฏิเสธ เซิร์ฟเวอร์อาจระบุด้วยว่าต้องการข้อมูลเพิ่มเติมจากไคลเอนต์ (รหัส 3xx)

โฮสต์เริ่มต้น (ไคลเอ็นต์ SMTP) อาจเป็นไคลเอ็นต์อีเมลของผู้ใช้ปลายทางก็ได้ (กำหนดตามฟังก์ชันเป็น ตัวแทนไปรษณีย์- MUA) และตัวแทนการส่งต่อข้อความ (MTA) บนเซิร์ฟเวอร์เช่น เซิร์ฟเวอร์ทำหน้าที่เป็นไคลเอนต์ในเซสชันที่เหมาะสมเพื่อถ่ายทอดข้อความ เซิร์ฟเวอร์ที่ทำงานเต็มรูปแบบรองรับคิวข้อความเพื่อส่งข้อความซ้ำในกรณีที่เกิดข้อผิดพลาด

MUA รู้จักเซิร์ฟเวอร์ SMTP สำหรับเมลขาออกจากการตั้งค่า เซิร์ฟเวอร์ SMTP ซึ่งทำหน้าที่เป็นไคลเอ็นต์ เช่น การส่งต่อข้อความ จะกำหนดเซิร์ฟเวอร์ที่จะเชื่อมต่อโดยดูที่ระเบียน DNS MX (Mail eXchange) ของทรัพยากรสำหรับโดเมนของผู้รับแต่ละราย หากไม่พบระเบียน MX MTA ที่เข้ากันได้ (ไม่ใช่ทั้งหมด) จะถอยกลับไปเป็นระเบียน A แบบธรรมดา เซิร์ฟเวอร์การส่งต่อยังสามารถกำหนดค่าได้ โดยใช้สมาร์ทเจ้าภาพ.

เซิร์ฟเวอร์ SMTP ซึ่งทำหน้าที่เป็นไคลเอ็นต์ จะสร้างการเชื่อมต่อ TCP กับเซิร์ฟเวอร์ตามที่ออกแบบไว้ พอร์ต SMTP 25. MUA ควรใช้พอร์ต 587 ในการเชื่อมต่อ

ตัวแทนการส่งข้อความ (MSA) ข้อแตกต่างที่สำคัญระหว่าง MTA และ MSA ก็คือ จำเป็นต้องมีการรับรองความถูกต้อง SMTP สำหรับอย่างหลังเท่านั้น

SMTPS

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

ไคลเอนต์และเซิร์ฟเวอร์ใช้ SMTP ปกติในระดับแอปพลิเคชัน แต่การเชื่อมต่อได้รับการรักษาความปลอดภัยด้วย SSL หรือ TLS สิ่งนี้เกิดขึ้นหลังจากสร้างการเชื่อมต่อก่อนที่จะส่งข้อมูลเมลใดๆ

SMTPS ใช้พอร์ต 465

POP3 (Post Office Protocol เวอร์ชัน 3) เป็นโปรโตคอลแอปพลิเคชันอินเทอร์เน็ตมาตรฐานที่ใช้โดยไคลเอนต์อีเมลเพื่อดึงข้อความอีเมลจากเซิร์ฟเวอร์ระยะไกลผ่านการเชื่อมต่อ TCP/IP POP และ IMAP (Internet Message Access Protocol) เป็นโปรโตคอลอินเทอร์เน็ตที่ใช้กันทั่วไปในการรับเมล ไคลเอนต์อีเมลและเซิร์ฟเวอร์สมัยใหม่เกือบทั้งหมดรองรับทั้งสองมาตรฐาน โปรโตคอล POP ได้รับการพัฒนาในหลายเวอร์ชัน โดยเวอร์ชันที่สาม (POP3) เป็นมาตรฐานปัจจุบัน ผู้ให้บริการอีเมลส่วนใหญ่ (เช่น Hotmail, Gmail และ Yahoo! Mail) รองรับ IMAP และ POP3 เช่นกัน รุ่นก่อนหน้าโปรโตคอล (POP, POP2) ล้าสมัย

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

เซิร์ฟเวอร์ POP3 ฟังบนพอร์ตที่รู้จักกันดี 110 มีการร้องขอการเข้ารหัสการสื่อสารสำหรับ POP3 หลังจากที่โปรโตคอลเริ่มทำงาน โดยใช้คำสั่ง STLS (หากรองรับ) หรือ POP3S ซึ่งเชื่อมต่อกับเซิร์ฟเวอร์โดยใช้ TLS หรือ SSL บนพอร์ต TCP 995

คำสั่ง POP3

ข้อโต้แย้ง

ข้อจำกัด

คำตอบที่เป็นไปได้

การสนับสนุนของเธอไม่ได้

* +ตกลง maildrop ไม่มีข้อความ

[ชื่อ]

* - มีรหัสผ่าน ERR ให้

บังคับ

[ชื่อ] ไม่ถูกต้อง

* +OK ชื่อเป็นกล่องจดหมายที่ถูกต้อง

* -ERR ไม่เคยได้ยินเกี่ยวกับกล่องจดหมาย

* +ตกลง ล็อคเมลดรอปและ

ใช้งานได้หลังจากโอนสำเร็จ

* -ERR รหัสผ่านไม่ถูกต้อง

ชื่อกล่องจดหมาย

* -ERR ไม่สามารถล็อคได้

[ข้อความ]

ใช้ได้หลังจากประสบความสำเร็จ

* +ตกลง ลบข้อความแล้ว

บัตรประจำตัว

* -ERR ไม่มีข้อความดังกล่าว

[ข้อความ]

ใช้ได้หลังจากประสบความสำเร็จ

* +OK รายการสแกนจะตามมา

บัตรประจำตัว

* -ERR ไม่มีข้อความดังกล่าว

ใช้ได้หลังจากประสบความสำเร็จ

บัตรประจำตัว

[ข้อความ]

ใช้ได้หลังจากประสบความสำเร็จ

* +ตกลง มีข้อความตามมา

บัตรประจำตัว

* -ERR ไม่มีข้อความดังกล่าว

ใช้ได้หลังจากประสบความสำเร็จ

บัตรประจำตัว

ใช้ได้หลังจากประสบความสำเร็จ

บัตรประจำตัว

[ข้อความ]

ใช้ได้หลังจากประสบความสำเร็จ

[ปริมาณ

บัตรประจำตัว

* -ERR ไม่มีข้อความดังกล่าว

IMAP

โปรโตคอลสำรองสำหรับการรวบรวมข้อความจากเซิร์ฟเวอร์อีเมลคือ IMAP IMAP (Internet Message Access Protocol) เป็นโปรโตคอลระดับแอปพลิเคชันสำหรับการเข้าถึงอีเมล

ขึ้นอยู่กับ โปรโตคอลการขนส่ง TCP และใช้พอร์ต 143

POP3 มีข้อเสียหลายประการและสิ่งที่ร้ายแรงที่สุดคือการขาดความสามารถในการควบคุมการเคลื่อนไหวและการจัดเก็บข้อความบนเซิร์ฟเวอร์ ตามกฎแล้วข้อความจะถูกดาวน์โหลดจากเซิร์ฟเวอร์อีเมลทั้งหมดในครั้งเดียวหลังจากนั้นจะถูกลบออกจากเซิร์ฟเวอร์นั่นคือไม่มีความสามารถในการเลือกข้อความที่จะรับ

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

ประโยชน์ของ IMAP

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

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

ด้วยระบบแฟล็กที่กำหนดใน IMAP4 ลูกค้าสามารถติดตามสถานะของข้อความ (อ่าน ตอบกลับส่ง ลบ ฯลฯ ); ข้อมูลแฟล็กถูกเก็บไว้บนเซิร์ฟเวอร์

ไคลเอนต์ IMAP4 สามารถสร้าง เปลี่ยนชื่อ และลบกล่องจดหมาย และย้ายข้อความระหว่างกล่องจดหมายได้ คุณยังสามารถใช้ส่วนขยายรายการควบคุมการเข้าถึง (ACL) (RFC 4314) ของ IMAP4 เพื่อควบคุมสิทธิ์การเข้าถึงกล่องจดหมาย

การค้นหาข้อความเกิดขึ้นบนฝั่งเซิร์ฟเวอร์ IMAP4 มีกลไกการขยายที่ชัดเจน

วิธีการต่อต้านสแปม

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

ดีเอสบีแอล

DNSBL - บัญชีดำ DNS หรือรายการบล็อก DNS - รายการโฮสต์ที่จัดเก็บโดยใช้ระบบสถาปัตยกรรม DNS โดยทั่วไปใช้เพื่อต่อสู้กับสแปม เมลเซิร์ฟเวอร์เข้าถึง DNSBL และตรวจสอบที่อยู่ IP ของไคลเอนต์ที่รับข้อความ หากคำตอบเป็นบวก จะถือว่ามีความพยายามในการรับข้อความสแปม เซิร์ฟเวอร์ที่ส่งได้รับข้อผิดพลาด 5xx (ข้อผิดพลาดร้ายแรง) และไม่ยอมรับข้อความ เซิร์ฟเวอร์อีเมลของผู้ส่งจะสร้าง "ใบเสร็จตีกลับ" ให้กับผู้ส่งเพื่อระบุว่าไม่ได้ส่งอีเมล

มี 2 ​​วิธีในการใช้เทคโนโลยีนี้

1. การบล็อกที่ชัดเจน - การปฏิเสธข้อความที่มาจากที่อยู่ IP ที่อยู่ใน DNSBL

2. แนวทางที่สมดุล ด้วยวิธีนี้ ข้อความที่มาจากที่อยู่ IP

ที่อยู่ใน DNSBL ไม่ได้ถูกบล็อก แต่ข้อเท็จจริงนี้ถูกนำมาพิจารณาเมื่อจำแนกประเภท "สแปม" ของจดหมาย

เมื่อใช้แนวทางแรก ตัวอักษรทั้งหมดจากที่อยู่ IP ที่รวมอยู่ใน DNSBL จะถูกปฏิเสธอย่างชัดเจน ไม่ว่าที่อยู่ IP จะถูกขึ้นบัญชีดำสมควรหรือโดยความผิดพลาด (ซึ่งกำลังกลายเป็นเรื่องปกติในทางปฏิบัติมากขึ้นเรื่อยๆ) การใช้แนวทางที่สองแสดงให้เห็นได้อย่างสมบูรณ์แบบโดย spamassassin ตัวกรองสแปมโอเพ่นซอร์ส เมื่อใช้วิธีการถ่วงน้ำหนักเพื่อจัดประเภทข้อความ กล่าวคือ การวิเคราะห์ตามเกณฑ์หลายเกณฑ์ ในกรณีนี้ การมีอยู่ของที่อยู่ IP ของผู้ส่งในบัญชีดำไม่ได้เป็นเพียงปัจจัยเดียวและเป็นผลลัพธ์ที่มีอิทธิพลต่อการตัดสินใจในการจัดประเภทข้อความ ซึ่งหมายถึงการลดจำนวนผลบวกของตัวกรองที่ผิดพลาดในกรณีที่ที่อยู่ IP ของผู้ส่งเป็น ถูกขึ้นบัญชีดำจากอุบัติเหตุไร้สาระ

การควบคุมมวล

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

ข้อดี: หากเทคโนโลยีใช้งานได้ รับประกันว่าจะตรวจจับการส่งจดหมายจำนวนมากได้

ข้อเสีย: ประการแรก การส่งจดหมาย "ขนาดใหญ่" อาจไม่ใช่สแปม แต่เป็นเมลที่ถูกกฎหมาย (เช่น Ozon.ru, Subscribe.ru ส่งข้อความที่เกือบจะเหมือนกันหลายพันข้อความ แต่นี่ไม่ใช่สแปม) ประการที่สอง ผู้ส่งอีเมลขยะรู้วิธี “เจาะ” การป้องกันดังกล่าวโดยใช้เทคโนโลยีอัจฉริยะ พวกเขาใช้ซอฟต์แวร์ที่สร้างเนื้อหาต่างๆ เช่น ข้อความ กราฟิก ฯลฯ - ในทุกสแปม