สิ่งที่แทนที่เซิร์ฟเวอร์ 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.