Что заменяет IIS SMTP-сервер в Windows Server 2012

30

Я прочитал заметки здесь http://technet.microsoft.com/en-us/library/hh831568.aspx, касающиеся устаревших и удаленных функций в Windows 2012, и там говорится, что SMTP устарел. Я предполагаю, что это относится к SMTP-серверу IIS. Вместо этого рекомендуется использовать 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 я использую Mail 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, что необходимо подключиться к локальному хосту, чтобы получить файлы журнала W3C.
Бит Бекон
14

Функция SMTP роли веб-сервера устарела, но не была удалена. Вы можете установить и использовать его, но рекомендуется использовать другой (внешний) SMTP-сервер.

SMTP и связанные инструменты управления устарели. Хотя эта функциональность все еще доступна в Windows Server 2012, вам следует начать использовать System.Net.Smtp. С этим API вы не сможете вставить сообщение в файл для получения; вместо этого настройте веб-приложения для подключения через порт 25 к другому серверу, используя SMTP.

Поэтому в будущем вы должны установить и использовать отдельный SMTP-сервер (которых доступно много) для предоставления SMTP-сервисов веб-приложениям, работающим на Windows ServerX.

joeqwerty
источник
4

Это описание в статье, на которую вы ссылаетесь, ужасно! Но вот что он пытается вам сказать:

Включение IIS SMTP в предыдущих версиях Windows делало две вещи:

  1. Запустил SMTP-сервер IIS.
  2. Добавлены библиотеки программирования (т.е. COM-объекты и т. Д.) Для отправки сообщений.

Если вы используете эти библиотеки без какой-либо конфигурации, они будут отправлены на локальный SMTP-сервер IIS. Программисты по своей природе ленивы, поэтому, поскольку это работало с наименьшим количеством усилий с их стороны, это то, что они делали. И многие не предоставили способ отправки электронной почты через другой SMTP-сервер.

В статье должно быть сказано, что SMTP-сервер IIS больше не существует, но библиотеки SMTP по-прежнему предоставляются, и приложение должно быть настроено на использование другого SMTP-сервера.

длинная шея
источник
2
SMTP-сервер является функцией роли веб-сервера в Windows Server 2012 и может быть установлен. Это устарело, но не удалено.
Joeqwerty
Я предполагаю, что это все еще появляется под 'Консоль управления IIS6' правильно?
Симон
2
@Simon Да, та же старая старая консоль управления 2002 года из IIS 6 по-прежнему используется для настройки SMTP в Windows Server 2012. :) Функция управления IIS 6 зависит от функции SMTP.
bzlm
1
Не обращайте внимания на невежественную лень. Более подробную информацию о том, почему локальный сервер SMTP является хорошей идеей (и стандарт на большинстве других операционных систем - клиент и сервер), см этот ответ .
bzlm
Как насчет Windows Server 10 или как это называется? Та же сделка?
Саймон