Свойство «ToolsVersion» было наиболее полезным для различения версий инструментов, установленных бок о бок в глобальной установке MSBuild.
Начиная с VS 2017, глобальная установка MSBuild больше не существует, важность ToolsVersion
ниже.
В VS 2019 они представили версию Current
, которая призвана заменить потребность в фактическом номере версии, не нарушая его использование (например, вы увидите пути, содержащие папки с именем Current
) и убедившись, что проекты и расширения будут обновляться до новых версий более легко, без сбоев.
Поэтому, пока вы используете последние версии VS (2017, 2019), вам не нужно указывать ToolsVersion
, особенно если вы пишете проекты для .NET Core или .NET Standard.
Поскольку Вы знаете, что SMTP больше не поставлется с Vista (Который является одной из моих самых больших жалоб на Vista). Поскольку Вы уже знаете, что существует много опций там, и если Вы нашли пользу свободной одно сообщение ссылка на него. То, как Вы настраиваете его, будет прочертовский зависеть от сервера, который Вы устанавливаете.
Я играл вокруг с некоторой пробной версией smtp серверы, и все те я использовал запущенное слушание на стандартных портах SMTP на петлевом IP-адресе. Я полагаю, что это - MailSettings по умолчанию и не должно требовать никаких изменений.
У меня больше нет сервера SMTP, и использую режим Pickup Directory. Это заставляет почтовую библиотеку производить файл, который я могу затем осмотреть.
Настраивать это использование следующее в Вашем файле конфигурации:
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory
pickupDirectoryLocation="c:\maildrop"/>
</smtp>
</mailSettings>
</system.net>
Если Вы хотите настроить его для соединения с портом 25 на локальном хосте, Вы были бы это для раздела SMTP:
<smtp deliveryMethod="Network">
<network defaultCredentials="true" host="localhost" port="25"/>
</smtp>
Terry задал хороший вопрос об использовании местоположения отбрасывания. Я только использую это для тестирования, поскольку наш рабочий сервер имеет сервер SMTP, который я подключаю с и посылаю электронное письмо через; однако, некоторые серверы SMTP могут быть настроены для наблюдения каталога и возьмут и отправят что-либо по почте туда.
Я не думаю, что эта функция была предназначена, чтобы использоваться только для тестирования, но это работает приятно. Файлы, которые сгенерированы, могут быть открыты в различных почтовых клиентах, таким образом, Вы видите, как они представили бы их. Я живо они .eml файлы, но я не могу помнить.
Можно найти очень простой сервер SMTP кодированным в C# .NET
в stickymailserver:
Липкий Почтовый сервер является низким взаимодействием Ловушка SMTP, разработанная для эмуляции открыть реле SMTP. Это получает и регистрирует тестовые сообщения и массовые рассылки и сохраняет их для более позднего анализа.
Вы могли использовать внешне размещенный сервер SMTP. Я нашел, что много почтовой системы блокирует доступ, если инициирующий сервер SMTP будет позади динамического IP-адреса (как большинство жилых систем).
Я должен был недавно сделать это.
SmtpClient smtp = new SmtpClient("smtp.myserver.com");
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Credentials = new System.Net.NetworkCredential("Username", "Password");
Используя событие "SendCompleted", можно послать электронное письмо в фоновом режиме, не задерживая приложение.
@JoshBerke
Я пробовал использовать описанный ниже параметр, но получаю сообщение «Не удается получить каталог размещения IIS». Я знаю, что указываю на существующий каталог, есть ли разрешения, которые мне нужно настроить для этого каталога?
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="c:\maildrop"/>
</smtp>