Я прочитал заметки здесь 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, я бы проклял их, но, по крайней мере, это сделало бы меня значимым заявлением, в то время как текущее, безусловно, нет.
Я думаю, что упомянутое заявление от Microsoft просто ужасно и полностью сбивает с толку, и я не думаю, что тот, кто его написал, имеет хоть какое-то представление о том, как вообще работает SMTP-сервер. Он не объясняет, почему он устарел или с ним что-то не так. Возможно, есть проблемы с безопасностью или переполнение буфера, но если вы не раскрываете его на общедоступном порту, я без колебаний воспользуюсь им.
Вот что я делаю:
10.0.0.1
. Я делаю это в родительской папке для любых развернутых сайтов, иначе она будет стерта при повторном развертывании. Если вы хотите, вы можете поместить его прямо в web.config, но в этом случае он менее гибкий.10.0.0.1
. Очевидно, как я сказал ранее, это не публикуется в публичном Интернете.smtp.gmail.com
или smtp.live.com
new SmtpClient()
. Это забирает конфигурацию из IIS и отправляет почту на мой SMTP-сервер по адресу 10.0.0.1
Когда я отправляю письмо, оно мгновенно возвращается, потому что оно просто отправляется на localhost
Это важное преимущество использования локального SMTP-сервера, которое нельзя недооценивать и которому 'System.Net.Smtp' сам по себе не может заменить:
smtp.gmail.com
не отвечает или, возможно, ваша сеть не работает. (На удивление часто, когда я впервые пытался отправить почту напрямую)Идите и используйте это. Microsoft не предоставила замену, и это бесплатно, так почему бы и нет. «Устарело», на мой взгляд, ничего не значит, если нет замены.
Отказ от ответственности: я все еще использую Server 2008, но я предполагаю, что все это по-прежнему применимо.
Функция SMTP роли веб-сервера устарела, но не была удалена. Вы можете установить его и использовать, но рекомендуется использовать другой (внешний) SMTP-сервер.
SMTP и связанные с ним инструменты управления устарели. Хотя эта функциональность по-прежнему доступна в Windows Server 2012, вам следует начать использовать System.Net.Smtp. С помощью этого API вы не сможете вставить сообщение в файл для получения; вместо этого настройте веб-приложения для подключения через порт 25 к другому серверу с помощью SMTP.
Таким образом, в будущем вы должны будете установить и использовать отдельный SMTP-сервер (которого существует множество доступных) для предоставления SMTP-сервисов веб-приложениям, работающим на Windows ServerX.
Это описание в статье, на которую вы ссылаетесь, ужасно! Но вот что он пытается вам сказать:
Включение IIS SMTP в предыдущих версиях Windows делало две вещи:
Если вы использовали эти библиотеки без какой-либо конфигурации, они будут отправлены на локальный SMTP-сервер IIS. Программисты по своей природе ленивы, поэтому, поскольку это сработало с наименьшими усилиями с их стороны, они и поступили именно так. И многие из них не обеспечивали возможность отправки электронной почты через другой SMTP-сервер.
В статье должно быть сказано, что SMTP-сервер IIS больше не существует, но библиотеки SMTP по-прежнему предоставляются, и приложение должно быть настроено для использования другого SMTP-сервера.