2009-04-20 7 views
1

비행 예약 시스템을 수행하고 있으며 전자 여행 티켓이 포함 된 전자 메일을 사용자에게 보내려합니다. 이 - 티켓은 데이터베이스에서 가져온 예약 ID와 여객의 이름과 같은 이전 페이지의 다른 세부 정보로 동적으로 생성됩니다. 그렇다면 어떻게 동적으로 생성 된 E-Ticket을 그의 E-Mail ID로 보낼 수 있습니까?ASP.NET- 전자 메일 보내기

+0

이 문제는 HTML 인코딩 된 문자열을 전자 메일 메시지로 보내는 것과 어떻게 다른가요? – Cerebrus

+0

나는 잘 알지 못한다 .... – Roshan

답변

3

경고 :이 질문에 대한 원래의 대답은 System.Web.Mail 이메일을 보내는 데 사용됩니다. 그러나이 API는 .NET 2.0에서 System.Net.Mail로 대체되었으며 이제 System.Web.Mail 클래스는 폐기되었거나 폐기 된 것으로 표시됩니다.


당신은 System.Web.Mail.Mailmessage 클래스를 사용할 수 있습니다

System.Web.Mail.MailMessage mailMessage = new System.Web.Mail.MailMessage(); 
mailMessage.To = "[email protected]"; 
mailMessage.From = "[email protected]"; 
mailMessage.Subject = "Email subject"; 
mailMessage.BodyFormat = System.Web.Mail.MailFormat.Html; 
mailMessage.Body = "Email body"; 

System.Web.Mail.SmtpMail.SmtpServer = System.Configuration.ConfigurationSettings.AppSettings["mailserver"]; 
System.Web.Mail.SmtpMail.Send(mailMessage); 
+0

'System.Web.Mail'의 모든 클래스는 .NET 2.0에서 대체되었으며 .NET 4.0에서는 더 이상 사용되지 않습니다. 자세한 내용은 Jørn Schou-Rode의 대답을 참조하십시오. –

3

System.Net.Mail 네임 스페이스를 사용하여 전자 메일을 보낼 수 있습니다. StringBuilder 또는 String.Format을 사용하여 세부 정보를 전자 메일의 본문에 배치하는 방법을 고려해 보겠습니다.

+0

tats ok .. 나는 이메일을 보냈다. 어떻게 동적으로 생성 된 E-Ticket을 보낼 것인가? – Roshan

+0

문자열 빌더 또는 유사한 접근법을 통해 코드에서 e- 티켓을 동적으로 생성합니다. – schooner

0

MailMessage 클래스를 살펴보십시오. 해당 MSDN 페이지에는 첨부 파일을 처리하는 방법을 포함하여 전체 샘플이 들어 있습니다.

Scott Guthries 블로그에서 this short tutorial을 보거나 구성 파일 (web.config)에 필요한 항목을 설명합니다.

0

ASP.NET에서 이메일을 보내는 것은 매우 간단합니다. Jsut은 코드의 메시지 내용을 생성하고, 고정 및 동적 요소를 가져 와서 본문의 전체 문자열을 만든 다음 일반 텍스트 또는 HTML 형식으로 보내기 만하면됩니다. 여기

는 송신 할 수있는 전화의 기본 구조입니다 :

수입 System.Net.Mail을

 Dim eMessage As New MailMessage(senderAddress, receiverAddress) 

     eMessage.Subject = emailSubject 
     eMessage.Body = emailBody 
     eMessage.IsBodyHtml = emailIsHTML 
     eMessage.Attachments.Add(emailAttachment) 

     ' send email object 
     Dim smtp As New SmtpClient 
     smtp.Send(eMessage) 

내용의 동적 부분은 단지 구축하기 위해 모두 StringBuilder 또는 이와 유사한 접근 방법이다 HTML 전자 메일 등을 사용하려는 경우 HTML 형식을 추가하는 고정 및 동적 요소의 문자열.

1

System.Web.Mail 및이 (정당) asp.net 2.0에서 사용되지이다; 그 대답을 무시하고 대신 system.net.mail을 사용하도록 여러분을 안내하는 사람들의 말을 들어야합니다.

5

경고 : 경고 :이 질문에 대한 대답은 System.Web.Mail을 사용하여 전자 메일을 보내는 것이 좋습니다. 그러나이 API는 .NET 2.0에서 System.Net.Mail으로 바뀌 었으며 이제 System.Web.Mail의 클래스는 모두 폐기되었거나 더 이상 사용되지 않는 것으로 표시됩니다. SmtpClient.Send() 방법을 사용하여,

using (MailMessage message = new MailMessage()) 
{ 
    message.From = new MailAddress("[email protected]"); 
    message.To.Add(new MailAddress("[email protected]")); 
    message.Subject = "Get back to work!"; 
    message.Body = "Stop hanging around SO."; 

    SmtpClient smtp = new SmtpClient(); 
    smtp.Send(message); 
} 

사실, 위의 코드를 훨씬 더 짧은 쓸 수있다 : 여기


는이 구성하고 .NET에서 메일 메시지를 전송하는 방법의 실제 간단한 예입니다 :

SmtpClient smtp = new SmtpClient(); 
smtp.Send("[email protected]", "[email protected]", 
      "Get back to work!", "Stop hanging around SO."); 

그러나, 당신은 종종에 첨부, 주소의 표시 이름을 설정 한 메시지 내용 유형을 변경하거나 추가 할 수 있도록 위해, "상세"스타일을 사용해야합니다 메시지.

어떤 메일을 선택하든 이메일을 전송하는 방법을 알려주는 SMTP 설정과 관련하여 애플리케이션을 구성해야합니다. 당신이 응용 프로그램 구성 파일에서 (즉, ASP.NET 응용 프로그램에서 web.config 될 것이다),이 같은 것을 추가해야합니다

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]"> 
      <network host="smtp.example.com" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

정확한 설정은 메일 메시지를 전달하는 응용 프로그램을 원하는 방법에 따라 달라집니다. 위의 예제 구성을 사용하면 지정된 SMTP 서버를 통해 메시지가 릴레이됩니다. 다른 솔루션은 응용 프로그램이 로컬 IIS 가상 메일 서버가 처리 할 픽업 폴더에 메시지를 쓰도록하는 것을 포함합니다. 자세한 내용은 official documentation을 참조하십시오.

+1

또한 MailMessage는 IDisposable을 구현하므로 메시지를 Dispose()하거나 * using * 블록에 넣어야합니다. – GalacticCowboy

+0

@ Galactic : 당신은 절대적으로 옳았으며 그에 대한 대답이 업데이트되었습니다. –

+1

모두들 : .NET 4.0에서'SmtpClient' 클래스도'IDisposable'입니다! –