สิ่งที่แทนที่เซิร์ฟเวอร์ IIS SMTP ใน Windows Server 2012


30

ฉันได้อ่านบันทึกย่อที่นี่http://technet.microsoft.com/en-us/library/hh831568.aspxเกี่ยวกับฟีเจอร์ที่เลิกใช้แล้วและถูกลบออกใน Windows 2012 และมันบอกว่า SMTP เลิกใช้แล้ว ฉันถือว่านี่หมายถึงเซิร์ฟเวอร์ IIS SMTP คำแนะนำคือการใช้ System.Net.Smtp แทน แต่ฉันคิดว่านี่เป็นข้อผิดพลาดเพราะฉันไม่พบการอ้างอิงใด ๆ กับสิ่งที่เรียกว่า System.Net.Smtp

ถ้าพวกเขาตั้งใจจะพูดว่า System.Net.Mail นั่นเป็นเพียง API และฉันไม่สามารถดูว่า API มาแทนที่กระบวนการเซิร์ฟเวอร์ได้อย่างไร ฉันต้องการบริการที่ยอมรับการเชื่อมต่อบนพอร์ต 25 และกำหนดเส้นทางอีเมลไปยังปลายทางเช่น IIS SMTP ที่ใช้ทำ

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

คำตอบ:


19

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

นี่คือสิ่งที่ฉันทำ:

  • ใน IIS ฉันจะตั้งค่า 'SMTP 10.0.0.1อีเมล์สำหรับโดเมนที่จะชี้ไปที่ ฉันทำสิ่งนี้ในโฟลเดอร์พาเรนต์ไปยังไซต์ที่นำไปใช้งานไม่เช่นนั้นจะถูกลบเมื่อคุณปรับใช้ซ้ำ หากคุณต้องการคุณสามารถวางโดยตรงใน web.config แต่มันมีความยืดหยุ่นน้อยกว่า
  • ในเซิร์ฟเวอร์ SMTP (ผ่านคอนโซลการจัดการ IIS6) ฉันจะตั้งค่าเซิร์ฟเวอร์ SMTP 10.0.0.1ที่ เห็นได้ชัดว่าฉันบอกว่าก่อนหน้านี้ไม่ได้เปิดเผยในอินเทอร์เน็ตสาธารณะ
  • ฉันกำหนดค่าเซิร์ฟเวอร์นี้เพื่อถ่ายทอดผ่าน Smart Host ผ่านsmtp.gmail.comหรือsmtp.live.com
  • ในการประยุกต์ใช้ของฉัน NET ผมใช้จดหมาย API new SmtpClient()เพื่อส่งข้อความไปใช้ สิ่งนี้รับการกำหนดค่าจาก IIS และส่งอีเมลไปยังเซิร์ฟเวอร์ SMTP ของฉันที่10.0.0.1
  • เมื่อฉันส่งอีเมลมันจะส่งคืนทันทีเนื่องจากเพิ่งถูกส่งไปยัง localhost

  • ตอนนี้นี่คือประโยชน์ที่สำคัญของการใช้เซิร์ฟเวอร์ SMTP ในเครื่องที่ไม่สามารถอธิบายได้และ 'System.Net.Smtp' ในตัวของมันเองจะไม่สามารถทดแทนได้ :

    • เซิร์ฟเวอร์ SMTP จะพยายามส่งเมลผ่านสมาร์ทโฮสต์ของคุณและถ้าไม่สามารถส่งได้ในทันทีจะลองใหม่ในภายหลัง
    • สิ่งสำคัญคือต้องตระหนักว่าบางครั้งแม้smtp.gmail.comจะไม่ตอบกลับหรือเครือข่ายของคุณไม่ทำงาน (น่าแปลกที่พบบ่อยเมื่อฉันพยายามส่งจดหมายโดยตรงครั้งแรก)
    • หากไม่มีเซิร์ฟเวอร์ SMTP ระดับกลางในการจัดเก็บข้อความคุณไม่สามารถเพียง 'ส่งและลืม' จาก. NET และคุณต้องหากลไกการลองใหม่บางชนิดซึ่งไม่จำเป็นอย่างสมบูรณ์กับเซิร์ฟเวอร์ SMTP ซึ่งทำทุกอย่างให้คุณ
    • ฉันเชื่อว่าถ้าคุณมีขีด จำกัด การส่งต่อ SMTP (บน ISP / GMail ของคุณ) เซิร์ฟเวอร์ SMTP จะทำการลองใหม่และส่งข้อความในวันถัดไป - เป็นประโยชน์อย่างมากหากคุณมีปริมาณการใช้งานที่ไม่สอดคล้องกันในแต่ละวัน ตระหนักถึง

ไปข้างหน้าและใช้มัน Microsoft ไม่ได้ให้การเปลี่ยนทดแทนและให้ฟรีดังนั้นทำไมจึงไม่ 'เลิกใช้แล้ว' ไม่มีความหมายในความคิดของฉันหากไม่มีสิ่งทดแทน

คำเตือน: ฉันยังอยู่ใน Server 2008 แต่ฉันคิดว่าทั้งหมดนี้ยังคงใช้


4
ใช่เดิมนั้นยังคงใช้กับ Windows Server 2012 ฉันประหลาดใจเสมอที่พบว่ามีคนไม่กี่คนที่ตระหนักถึงข้อได้เปรียบของการใช้เซิร์ฟเวอร์ SMTP ในพื้นที่เพื่อจัดคิวข้อความ!
— ริชาร์ด

1
นอกเหนือจากการจัดคิวแล้วเซิร์ฟเวอร์ SMTP ยังช่วยให้คุณสามารถบันทึกการกำหนดค่า SMTP ใน IIS 8.5 ไม่ได้ให้การบันทึกใด ๆ เท่าที่ฉันทราบ เราเพิ่มในเซิร์ฟเวอร์ SMTP ผ่าน IIS 6 และบอก IIS 8.5 เพื่อเชื่อมต่อกับ localhost เพียงเพื่อรับไฟล์บันทึก W3C
— เบคอน Bits

14

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

SMTP และเครื่องมือการจัดการที่เกี่ยวข้องถูกคัดค้าน แม้ว่าฟังก์ชันการทำงานจะยังคงมีอยู่ใน Windows Server 2012 แต่คุณควรเริ่มใช้ System.Net.Smtp ด้วย API นี้คุณจะไม่สามารถแทรกข้อความลงในไฟล์เพื่อรับของได้ แทนที่จะกำหนดค่าเว็บแอปพลิเคชันเพื่อเชื่อมต่อบนพอร์ต 25 ไปยังเซิร์ฟเวอร์อื่นโดยใช้ SMTP

ดังนั้นในอนาคตคุณจะติดตั้งและใช้เซิร์ฟเวอร์ SMTP แยกต่างหาก (ซึ่งมีให้ใช้งานมากมาย) เพื่อให้บริการ SMTP แก่เว็บแอปพลิเคชันที่ทำงานบน Windows ServerX


4

คำอธิบายในบทความที่คุณเชื่อมโยงนั้นแย่มาก! แต่นี่คือสิ่งที่พยายามบอกคุณ:

การเปิด IIS SMTP ใน Windows รุ่นก่อนหน้านั้นมีสองสิ่ง:

  1. เริ่มต้นเซิร์ฟเวอร์ IIS SMTP
  2. เพิ่มไลบรารีการเขียนโปรแกรม (เช่นวัตถุ COM และอื่น ๆ ) สำหรับการส่งข้อความ

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

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


2
เซิร์ฟเวอร์ SMTP เป็นคุณสมบัติของบทบาทเซิร์ฟเวอร์เว็บใน Windows Server 2012 และสามารถติดตั้งได้ มันเลิกใช้แล้ว แต่ยังไม่ถูกลบออก
— joeqwerty

ฉันคิดว่ามันยังคงปรากฏอยู่ภายใต้ 'คอนโซลการจัดการ IIS6' ใช่ไหม
— Simon

2
@Simon ใช่คอนโซลการจัดการเก่าที่ดีแบบเดิมจาก 2002 จาก IIS 6 ยังคงใช้เพื่อกำหนดค่า SMTP ใน Windows Server 2012 :) คุณลักษณะการจัดการ IIS 6 นั้นขึ้นอยู่กับคุณสมบัติของ SMTP
— bzlm

1
ไม่สนใจความเฉื่อยเฉื่อยที่เฉื่อยชา สำหรับรายละเอียดเกี่ยวกับสาเหตุที่เซิร์ฟเวอร์ SMTP ในพื้นที่เป็นแนวคิดที่ดี (และมาตรฐานสำหรับระบบปฏิบัติการอื่น ๆ ส่วนใหญ่ - ไคลเอนต์และเซิร์ฟเวอร์) ให้ดูคำตอบนี้
— bzlm

แล้ว windows server 10 หรืออะไรที่เรียกว่า ข้อตกลงเดียวกัน
— Simon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.