asp.net mvc framework, automatycznie wysyłać e-mail

I want my asp.net system mvc framework do wysyłania wiadomości e-mail za każdym razem pewne działanie (wewnątrz pewnego kontrolera)jest zwolniony. Czy istnieją jakieś biblioteki stron trzecich lub. NET standardowe sposoby, aby to osiągnąć?

Author: BIBD, 2009-01-20

4 answers

Bardziej aktualną metodą byłoby użycie System. Net. Mail - jest to zamiennik systemu 2.0.Www.Poczta.

Coś takiego, wywołanego albo z kontrolera bazowego (jeśli są inne kontrolery, które tego potrzebują), faktycznego kontrolera, o którym mowa.

Mam następujący kod wewnątrz statycznej klasy do obsługi wysyłania prostych elementów tekstowych z serwera:

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);
}

Oczywiście, prawdopodobnie chcesz, aby jakaś obsługa błędów itp tam-Wyślij może rzucić wyjątek na przykład, jeśli serwer odmawia połączeń.

 21
Author: Zhaph - Ben Duguid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-20 14:32:15

Utwórz Kontroler bazowy, z którego dziedziczą wszystkie inne kontrolery. W BaseController nadpisać metodę OnActionExecuted i wstawić kod do wysłania wiadomości e-mail.

public class BaseController : Controller
{
    protected override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        // Send mail here
        base.OnActionExecuted(filterContext);
    }
}
 3
Author: terjetyl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-20 14:02:20

Klasa SmtpClient z innymi klasami System.Net.Mail są łatwo używane z dowolnego programu . Net do wysyłania poczty. Wystarczy skierować go na Dostępny i chętny Serwer SMTP.

 2
Author: gimel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-20 14:43:01

Cóż to nie jest naprawdę trudne, aby wysłać e-mail za pomocą .NET. można po prostu wysłać pocztę z wewnątrz działania.

Ale myślę, że niewiele tu mówimy o logowaniu, a do logowania jest szereg bibliotek stron trzecich. Wiem, że jest jeden o nazwie Log4Net.

Większość tych frameworków logowania umożliwia konfigurację sposobu przechowywania dzienników, a także ustawienie wysyłania wiadomości e-mail, gdy coś rejestruje.

Ale w Twoim scenariuszu, to po prostu napisać zwykły prosty mail funkcja, która wysyła pocztę, gdy użytkownik wprowadzi akcję. Możesz spojrzeć na: http://www.developer.com/net/asp/article.php/3096831 - jest to demo wysyłania poczty za pomocą. NET - webforms, ale podstawowe rzeczy nadal mają zastosowanie do MVC.

 1
Author: Jesper Blad Jensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-20 09:26:48