Що замінює сервер 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.

Хтось може прояснити ситуацію тут? Якби вони сказали, що його замінить Exchange, то я б проклинав на них, але, принаймні, це могло б зробити вагоме твердження, тоді як нинішній, безумовно, це не так.

Відповіді:


19

Я вважаю, що згадане твердження від Microsoft просто жахливе і зовсім заплутане, і я не думаю, що той, хто його написав, не має жодного поняття про те, як працює навіть SMTP-сервер. Це не пояснює, чому воно застаріле або якщо з ним щось не так. Можливо, є проблеми із безпекою або перевиконання буфера, але якщо ви не експонуєте його на загальнодоступному порту, я б не вагався з його використанням.

Ось що я роблю:

  • У IIS я встановив "SMTP Email" для домену, на який слід вказувати 10.0.0.1. Я роблю це в батьківській папці на будь-які розгорнуті сайти, інакше вона буде стерта при повторному розміщенні. Якщо ви хочете, ви можете розмістити його безпосередньо в web.config, але його менш гнучким таким чином.
  • На сервері SMTP (через консоль управління IIS6) я встановив SMTP-сервер на 10.0.0.1. Очевидно, як я вже говорив, це не викладалося в публічному Інтернеті.
  • Я налаштовую цей сервер на ретрансляцію через Smart Host через smtp.gmail.comабоsmtp.live.com
  • У моєму додатку .NET я використовую API 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 не забезпечила заміну, і це безкоштовно, чому б ні. "Застарілий" на мою думку нічого не означає, якщо немає заміни.

Відмова: Я все ще на сервері 2008, але я припускаю, що все це все ще стосується.


4
Так, те ж саме стосується Windows Server 2012. Мене завжди дивує те, що я знаю так мало людей, які усвідомлюють перевагу використання локального SMTP-сервера для черги повідомлень!
Річард

1
На додаток до черги, SMTP-сервер отримує реєстрацію. Конфігурація SMTP в IIS 8.5 не пропонує жодного журналу, наскільки мені відомо. Ми додаємо на сервер SMTP через IIS 6 і повідомляємо IIS 8.5 підключитися до localhost лише для отримання файлів журналу W3C.
Шматочки бекону

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 SMTP більше не існує, але бібліотеки SMTP все ще надаються, і програма повинна бути налаштована на використання іншого SMTP-сервера.


2
Сервер SMTP є функцією ролі веб-сервера в Windows Server 2012 і може бути встановлений. Вона була застаріла, але не була видалена.
joeqwerty

Я припускаю, що він все ще відображається в розділі "Консоль управління IIS6", правильно?
Саймон

2
@Simon Так, та сама стара стара консоль управління від IIS 6 досі використовується для налаштування SMTP в Windows Server 2012. :) Функція управління IIS 6 - це залежність від функції SMTP.
bzlm

1
Ігноруйте невігласиву ліньку. Детальніше про те, чому локальний SMTP-сервер - це гарна ідея (і стандартна для більшості інших ОС - клієнта та сервера), див. Цю відповідь .
bzlm

Як щодо Windows Server 10 або як це називається? Та сама угода?
Саймон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.