2009-09-04 2 views
0

Я разработал веб-приложение в ASP.NET. Я хочу интегрировать решение электронной почты в свое приложение.Решение электронной почты для веб-приложения

Вот мои основные требования: 1. Отправка электронной почты, как только пользователь регистрируется на веб-сайте. 2. Отправка уведомлений всем зарегистрированным пользователям.

Для второго требования мы можем рассматривать его как массовую электронную почту, поскольку мы отправляем письма всем пользователям.

Пожалуйста, дайте мне лучшее решение. Нужно ли настраивать SMTP-сервер?

ответ

1

Обычно нет. Убедитесь, что веб-сервер имеет службу SMTP, установленную в системе, и вы можете использовать класс system.net.mail. Это должно обрабатывать все ваши основные потребности отправки электронной почты.

Если вы столкнулись с проблемами с большим количеством зарегистрированных пользователей или проблемами с слишком большим количеством адресов BCC в своей массовой почте, вам нужно будет обратиться к основному диспетчеру почты (что-то, что могло бы отправлять ваши массовые сообщения в пакетах) или полноценный сервер электронной почты.

4

Да, вам нужно h a ve a n SMTP-сервер, хотя его не нужно настраивать на том же компьютере, что и на веб-сервере (его может даже предоставлять служба сторонних разработчиков).

Person a LLY Я хотел бы предложить й a т вы созд a a тэ н системы очередей эм a иль - г a þér то сценарий ASP.NET непосредственно с помощью system.net н a MESP a с к созду a a тэ й отправить a н эм a иль используя a конкретный SMTP-сервер, ч a в a d a т a б a с т a бл e (т.е. Предмет, тело, a ddress).

Seper a тех задания затем повторно a ца из я a т т a BLE a я посылает эм a Ира. Повторно a сынов для Seper a тэ т a BLE/Работы a Re:

  • Это a аннулирует ч a Винга в SMTP оперой a Тиона происходит внутри a п HTTP тра a нса a их - если SMTP-сервер overlo a ded или хуже, un a v a il a ble, your webp a ge будет a ppe a r до h a ng.

  • Если сервер SMTP является TEMPOR a чень ип a v a иль a BLE или overlo a DED, вы ч a ве a Билити к a a дд повторных попыток столбец вашего т a BLE.

  • Если SMTP-сервер пределы числа эм a ил ем a дц a н посланы в a период времени (зр a профилактики м) вы с a п настроить свою работу только a ttempt к отправьте топ x em a ils на e a ch inter a.

  • Если вы ж a нт отправить дель a Yed эм a ILS, это просто a м a олучатель из a dding столбец a "SendAfter"

0

Я нашел, что проще обертка в библиотеке System.Net.Mail в классе-помощнике, а затем это позволило мне просто включить мой класс EmailHelper в любой проект, который нуждается в возможности отправлять электронные письма.

Вот мой извращенный метод Send() в моем EmailHelper. Вы можете видеть, что он довольно прост в использовании.

public bool Send() { 
    bool emailSent = false; 

    if (_to.Count > 0) { 
     MailMessage msg = new MailMessage(); 
     SmtpClient mail = new SmtpClient("your.email.host"); 

     msg.From = new MailAddress(_fromAddress, _fromName); 

     foreach (String to in _to) { 
      msg.To.Add(new MailAddress(to)); 
     } 

     foreach (String cc in _cc) { 
      msg.CC.Add(new MailAddress(cc)); 
     } 

     msg.Subject = _subject; 
     msg.Body = _body; 
     msg.IsBodyHtml = true; 
     mail.Send(msg); 
     emailSent = true; 
    } 
    return emailSent; 
} 

Обратите внимание, что _fromAddress, _fromName и т.д., только частные признаки класса EmailHelper. Частные атрибуты _to и _cc - это только списки строк типа.

0

Я нашел его самым простым способом в asp.net и его работой на многих местах. Я использую библиотеку System.Net.Mail для отправки электронной почты.

System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(); 
    MailMessage msg = new MailMessage(); 
    msg.From = new MailAddress("[email protected]"); 
    msg.To.Add("[email protected]); 

    msg.IsBodyHtml = true; 
    msg.Subject = "Example Email"; 
    msg.Priority = MailPriority.High; 
    msg.Body = "Hello world..."; 

    smtp.Host = "smtp.domainName"; 
    smtp.EnableSsl = true; 
    System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential(); 
    NetworkCred.UserName = "[email protected]"; 
    NetworkCred.Password = "password"; 

    smtp.UseDefaultCredentials = true; 
    smtp.Credentials = NetworkCred; 

    try 
     { 
      ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; 
      smtp.Send(msg); 
     } 

     catch (Exception ex) 
     {} 

Я надеюсь, что этот код работает для вас ...

удачи и счастливого кодирования :)

 Смежные вопросы

  • Нет связанных вопросов^_^