Điều gì thay thế máy chủ IIS SMTP trong Windows Server 2012


30

Tôi đã đọc các ghi chú ở đây http://technet.microsoft.com/en-us/l Library / hh831568.aspx liên quan đến các tính năng không dùng nữa và đã bị xóa trong Windows 2012 và thông báo rằng SMTP bị phản đối. Tôi giả sử điều này đề cập đến máy chủ IIS SMTP. Lời khuyên là sử dụng System.Net.Smtp thay thế nhưng tôi cho rằng đây là một sai lầm vì tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào khác ở bất cứ thứ gì gọi là System.Net.Smtp.

Nếu họ thực sự muốn nói System.Net.Mail, đó chỉ là một API và tôi không thấy API thay thế một quy trình máy chủ như thế nào. Tôi cần một dịch vụ chấp nhận các kết nối trên cổng 25 và định tuyến email đến đích như IIS SMTP đã từng làm.

Bất cứ ai có thể làm rõ tình hình ở đây xin vui lòng? Nếu họ nói rằng nó đã được thay thế bởi Exchange thì tôi sẽ nguyền rủa họ nhưng ít nhất đó sẽ là một tuyên bố có ý nghĩa để đưa ra trong khi điều hiện tại chắc chắn là không.

Câu trả lời:


19

Tôi nghĩ rằng tuyên bố được tham chiếu từ Microsoft là khủng khiếp và hoàn toàn khó hiểu và tôi không nghĩ bất cứ ai đã viết nó đều có bất kỳ manh mối nào về cách máy chủ SMTP thậm chí hoạt động. Nó không giải thích lý do tại sao nó bị phản đối hoặc nếu có bất cứ điều gì sai với nó. Có lẽ có vấn đề về bảo mật hoặc lỗi tràn bộ đệm, nhưng nếu bạn không phơi bày nó trên một cổng công cộng, tôi sẽ không ngần ngại sử dụng nó.

Đây là những gì tôi làm:

  • Trong IIS tôi thiết lập 'Email Email' để tên miền trỏ đến 10.0.0.1. Tôi làm điều này trong thư mục mẹ đến bất kỳ trang web đã triển khai nào nếu không nó sẽ bị xóa khi bạn triển khai lại. Nếu bạn muốn, bạn có thể đặt nó trực tiếp vào web.config nhưng cách đó kém linh hoạt hơn.
  • Trong Máy chủ SMTP (thông qua Bảng điều khiển quản lý IIS6) tôi thiết lập máy chủ SMTP tại 10.0.0.1. Rõ ràng như tôi đã nói trước khi điều này không được tiết lộ trên internet công cộng.
  • Tôi định cấu hình máy chủ này để chuyển tiếp qua Máy chủ thông minh qua smtp.gmail.comhoặcsmtp.live.com
  • Trong ứng dụng .NET của tôi, tôi sử dụng API Mail để gửi thư bằng cách sử dụng new SmtpClient(). Điều này chọn cấu hình từ IIS và gửi thư đến máy chủ SMTP của tôi tại10.0.0.1
  • Khi tôi gửi thư, nó sẽ trả về ngay lập tức vì nó chỉ được gửi đến localhost

  • Bây giờ, đây là lợi ích quan trọng của việc sử dụng máy chủ SMTP cục bộ không thể được tiết lộ và bản thân 'System.Net.Smtp' không thể thay thế :

    • Máy chủ SMTP sẽ cố gắng chuyển tiếp thư qua smarthost cho bạn và nếu không thể gửi ngay, nó sẽ thử lại sau.
    • Điều quan trọng là nhận ra rằng đôi khi thậm chí smtp.gmail.comsẽ không trả lời hoặc có lẽ mạng của bạn bị hỏng. (Đáng ngạc nhiên là phổ biến khi lần đầu tiên tôi thử gửi thư trực tiếp)
    • Nếu không có máy chủ SMTP trung gian để lưu trữ thư, bạn không thể 'gửi và quên' từ .NET và bạn phải tìm ra một loại cơ chế thử lại hoàn toàn không cần thiết với máy chủ SMTP hoàn toàn phù hợp với bạn
    • Tôi tin rằng nếu bạn có giới hạn chuyển tiếp SMTP (trên ISP / Gmail của bạn) thì máy chủ SMTP sẽ tiếp tục thử lại và gửi tin nhắn vào ngày hôm sau - một lợi ích to lớn khác nếu bạn có lưu lượng không nhất quán từ ngày này sang ngày khác hoặc không đạt giới hạn nhận ra.

Đi trước và sử dụng nó. Microsoft đã không cung cấp một sự thay thế, và nó miễn phí, tại sao không. "Không dùng nữa" có nghĩa là không có gì theo ý kiến ​​của tôi nếu không có sự thay thế.

Tuyên bố miễn trừ trách nhiệm: Tôi vẫn đang sử dụng Server 2008 nhưng tôi cho rằng tất cả điều này vẫn được áp dụng.


4
Có, điều tương tự vẫn được áp dụng trên Windows Server 2012. Tôi luôn ngạc nhiên khi thấy rất ít người nhận ra lợi thế của việc sử dụng máy chủ SMTP cục bộ để xếp hàng tin nhắn!
Richard

1
Ngoài việc xếp hàng, máy chủ SMTP giúp bạn đăng nhập Cấu hình SMTP trong IIS 8.5 không cung cấp bất kỳ ghi nhật ký nào, theo như tôi biết. Chúng tôi thêm vào máy chủ SMTP qua IIS 6 và yêu cầu IIS 8.5 kết nối với localhost chỉ để lấy các tệp nhật ký W3C.
Bacon Bits

14

Tính năng SMTP của vai trò Máy chủ Web đã không được chấp nhận nhưng chưa bị xóa. Bạn có thể cài đặt và sử dụng nó nhưng nên sử dụng máy chủ SMTP (bên ngoài) khác.

SMTP và các công cụ quản lý liên quan không được dùng nữa. Mặc dù chức năng vẫn có sẵn trong Windows Server 2012, bạn nên bắt đầu sử dụng System.Net.Smtp. Với API này, bạn sẽ không thể chèn tin nhắn vào một tệp để nhận; thay vì cấu hình các ứng dụng Web để kết nối trên cổng 25 đến một máy chủ khác bằng cách sử dụng SMTP.

Vì vậy, trong tương lai, bạn sẽ cài đặt và sử dụng một máy chủ SMTP riêng (trong đó có nhiều máy chủ sẵn có) để cung cấp dịch vụ SMTP cho các ứng dụng Web chạy trên Windows ServerX.


4

Mô tả đó trong bài viết bạn liên kết đến là khủng khiếp! Nhưng đây là những gì nó đang cố nói với bạn:

Bật IIS SMTP trong các phiên bản trước của Windows đã làm hai việc:

  1. Bắt đầu một máy chủ IIS SMTP.
  2. Đã thêm thư viện lập trình (ví dụ: các đối tượng COM, v.v.) để gửi tin nhắn.

Nếu bạn đã sử dụng các thư viện không có cấu hình nào, chúng sẽ gửi đến máy chủ IIS SMTP cục bộ. Các lập trình viên vốn đã lười biếng, vì vậy họ đã làm việc với ít nỗ lực nhất từ ​​phía họ, đó là những gì họ đã làm. Và nhiều người đã không cung cấp một cách để gửi email thông qua một máy chủ SMTP khác.

Điều mà bài viết nên nói là máy chủ IIS SMTP không còn tồn tại, nhưng các thư viện SMTP vẫn được cung cấp và ứng dụng nên được cấu hình để sử dụng máy chủ SMTP khác.


2
Máy chủ SMTP là một tính năng của vai trò Máy chủ Web trong Windows Server 2012 và có thể được cài đặt. Nó đã bị phản đối nhưng không được gỡ bỏ.
joeqwerty

Tôi cho rằng nó vẫn xuất hiện trong 'Bảng điều khiển quản lý IIS6' phải không?
Simon

2
@Simon Có, bảng điều khiển quản lý cũ tương tự từ năm 2002 từ IIS 6 vẫn được sử dụng để định cấu hình SMTP trong Windows Server 2012. :) Tính năng quản lý IIS 6 là phụ thuộc vào tính năng SMTP.
bzlm

1
Mặc kệ sự lười biếng không biết gì. Để biết chi tiết về lý do tại sao máy chủ SMTP cục bộ là một ý tưởng hay (và tiêu chuẩn trên hầu hết các HĐH khác - máy khách máy chủ), hãy xem câu trả lời này .
bzlm

Làm thế nào về máy chủ windows 10 hoặc bất cứ thứ gì nó được gọi là? Cùng một thỏa thuận?
Simon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.