Я хочу, чтобы моя система 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.