2009-09-04 4 views
0

ASP.NET에서 웹 응용 프로그램을 개발했습니다. 내 응용 프로그램에 전자 메일 솔루션을 통합하려고합니다.웹 응용 프로그램 용 전자 메일 솔루션

내 핵심 요구 사항은 다음과 같습니다. 1. 사용자가 웹 사이트에 등록하자마자 이메일을 보냅니다. 2. 등록 된 모든 사용자에게 알림 전자 메일을 보냅니다.

두 번째 요구 사항은 모든 사용자에게 메일을 보내는 것처럼 대량 메일로 간주 할 수 있습니다.

제게 최선의 해결책을주십시오. SMTP 서버를 설정해야합니까?

답변

1

일반적으로 아니오. 웹 서버에 시스템에 SMTP 서비스가 설치되어 있고 system.net.mail 클래스를 사용할 수 있는지 확인하십시오. 이것은 기본 전자 메일 전송 요구를 모두 처리해야합니다.

등록 된 사용자가 대량이거나 대량 메일에 BCC 주소가 너무 많아서 문제가 발생하면 기본 메일 관리자 (일괄 메시지를 보낼 수있는 항목 버스트로) 또는 본격적인 전자 메일 서버.

4

예, 웹 서버와 동일한 컴퓨터에 셋업 할 필요는 없지만 (제 3 자 서비스에서 제공 할 수도 있음) h aSMTP 서버가 필요합니다.

사람 a는 에서야 나는 당신이 a 테 a N 그들 a 위원장 큐 시스템을 CRE t에 a 번째 제안 - 후 직접 System.Net N a mesp a CE를 사용하여 ASP.NET 스크립트가 a 테 CRE하는 THER a r에 a ND a 구체적인 SMTP 서버를 사용 a N 엠 a IL을 전송하면 a VE는 H a D a t a B a SE t a BL e (즉, 제목, 본문, a으로).

seper a 테 작업

다음 그들을 a 위원장을 보냅니다 차 a t t a 상상력 a 일에서 a DS를 다시. seper에 대한 재 a 아들 a 테 t a BLE/작업 a 재 :

  • 그것은 a이 시간 a이 a 기 이 a NS a ction a N HTTP의 TR의 내부에서 발생하는 SMTP의 OPER ving 무효화 - 경우를 SMTP 서버가 a 또는 으로 악화되었습니다. un a v a il a ble, your webp a은 a ppe a r에서 h a ng입니다.

  • SMTP 서버 인 경우 tempor a 공예 않은 a V a 위원장 a BLE 또는 DED a overlo, 당신은 시간 a이 당신의 t BLE a에 a 부 합성 a DD a에 재시도 열을했습니다.

  • 경우 SMTP a ILS 일 EM의 수의 서버 제한 a TC N a 기간 (SP a m 방지) 당신이 C a n으로 만 a ttempt에 작업을 구성에 보낼 수 a 상단에있는 a을 e a 채널 a에 보내십시오. 당신이 a 승 델 a YED 그들을 a ILS, 단순히의를 보낼 NT의 경우

  • 는 a는 m a "SendAfter"열에게 설정된 뒤 a의 a 라 자세 히는

0

나는 래퍼 할 가장 쉬운 방법을 발견했습니다 도우미 클래스의 System.Net.Mail 라이브러리를 사용하면 전자 메일을 보낼 수있는 기능이 필요한 모든 프로젝트에 내 EmailHelper 클래스를 포함시킬 수 있습니다.

내 EmailHelper에 내 Reurgitated Send() 메소드가 있습니다. 사용법이 매우 쉽다는 것을 알 수 있습니다. _fromAddress, _fromName 등이 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; 
} 

참고. private 속성 _to 및 _cc는 모두 string 유형의 목록입니다.

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

나는

행운을 빕니다 및 행복을

코딩 ... 당신이 코드가 작동 희망 :)

관련 문제