Самым простым способом (по крайней мере для меня) это на самом деле создать веб-страницу, которая делает все, что вы хотите сделать, а затем очистить его, используя System.Net.WebClient
или System.Net.HttpWebRequest
.
Итак, у вас есть Page1.aspx
, который позволяет человеку выбрать некоторые вещи и отправить форму, а затем у вас есть Email1.aspx
, который является окончательным результатом. Когда Page1.aspx
отправлен, используйте WebClient
, чтобы загрузить содержимое Email1.aspx
, возможно, передав вам запрос или некоторые файлы cookie, если это необходимо. Пользователь никогда «не видит» Email1.aspx
(за исключением своего письма, конечно), его просто использовали за кулисами.
Преимущество этого подхода заключается в том, что вы можете протестировать вывод HTML без необходимости перескакивать через обручи SMTP. На странице Email1.aspx
вы также можете переопределить метод OnRender()
(возможно, это может быть другое имя), если вам нужно изменить HTML. Или вы можете изменить HTML после его загрузки. Если вы выполняете одни и те же основные модификации HTML, вы можете подклассифицировать System.Web.UI.Page
, реализовать свой собственный рендеринг и затем наследовать все электронные письма из вашего нового подкласса.
Важно помнить, что спуск по этому маршруту создает HTTP-запрос, который полностью отделен от запроса пользователя, поэтому такие вещи, как сеанс и файлы cookie, не передаются автоматически, вам нужно найти способ сделать это что по своему усмотрению.