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.