Asp.net mvc framework, автоматически отправлять электронную почту
Я хочу, чтобы моя система asp.net mvc framework отправляла электронное письмо каждый раз, когда выполнялось определенное действие (внутри определенного контроллера). Существуют ли сторонние библиотеки или стандартные способы для этого?
Ответы
Ответ 1
Более современным методом будет использование System.Net.Mail - это замена 2.0 для System.Web.Mail.
Что-то вроде этого, вызванное либо из BaseController (если есть другие контроллеры, которым это нужно), фактический контроллер, о котором идет речь.
У меня есть следующий код внутри статического класса для обработки рассылки простых простых текстовых элементов с сервера:
internal static void SendEmail(MailAddress fromAddress, MailAddress toAddress, string subject, string body)
{
var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
};
var client = new SmtpClient("smtpServerName");
client.Send(message);
}
Очевидно, что вам, вероятно, понадобится некоторая обработка ошибок и т.д. - Send может генерировать исключение, например, если сервер отказывается от соединений.
Ответ 2
Создайте BaseController, из которого наследуются все ваши другие контроллеры.
В BaseController переопределите метод OnActionExecuted и вставьте код для отправки электронной почты.
public class BaseController : Controller
{
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
// Send mail here
base.OnActionExecuted(filterContext);
}
}
Ответ 3
SmtpClient Класс с другим System.Net.Mail классы легко использовать из любой программы .NET для отправки почты. Вам просто нужно указать его на доступный и желаемый сервер SMTP.
Ответ 4
Ну его не очень сложно отправить по электронной почте с помощью .NET. Вы можете просто отправить почту из своего действия.
Но, я думаю, мы мало говорим о регистрации здесь, и для ведения журнала существует ряд 3-х партийных библиотек. Я знаю, что есть один под названием Log4Net.
Большинство этих фреймворков протоколирования позволяют настроить способ хранения журналов и, возможно, также параметр для отправки электронной почты при его регистрации.
Но в вашем сценарии он просто напишет простую почтовую функцию, которая отправляет почту, когда пользователь вводит действие. Вы можете посмотреть: http://www.developer.com/net/asp/article.php/3096831 - это демонстрация отправки почты с использованием .NET - webforms, хотя основные вещи все еще применяются к MVC.