2009-04-20 37 views
1

私はフライト予約システムを行っており、彼の旅行の電子チケットが含まれているユーザーに電子メールを送信したいと思います。 Eチケットは、データベースからフェッチされた予約IDと、乗客の名前とすべての名前のような前のページの他の詳細で動的に生成されます。では、動的に生成された電子チケットを電子メールIDにどのように送ることができますか?ASP.NET-電子メールを送信

+0

この問題は、HTMLエンコードされた文字列を電子メールメッセージとして送信することとどのように違うのですか? – Cerebrus

+0

私はちゃんと知りません.... – Roshan

答えて

3

WARNING:この質問に対する私のオリジナルの答えは、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]der.com"; 
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ørnSchou-Rodeの答えを参照してください。 –

3

System.Net.Mail名前空間を使用してメールを送信できます。私はStringBuilderまたはString.Formatを使用して、電子メールの本文に詳細を配置することを検討します。

+0

tats ok ..私は電子メールを送ってきました。どのように動的に生成されたEチケットを送信するのですか? – 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 v2.0の中で推奨されていません。あなたはその答えを無視して、代わりにsystem.net.mailを使用するよう指している人に耳を傾けるべきです。

5

警告:この質問に対する回答は、System.Web.Mailを使用して電子メールを送信することを推奨しています。ただし、このAPIは.NET 2.0ではSystem.Net.Mailに置き換えられ、System.Web.Mailのクラスは廃止/廃止となっています。ここで


は、.NETでのメールメッセージを作成して送信する方法の本当の簡単な例です:

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

は実際に、上記のコードはSmtpClient.Send()方法を使用して、はるかに短く書くことができます。

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

@ギャラクティック:あなたは絶対に正しいです、そして私はそれを反映するために私の答えを更新しました。 –

+1

誰でも:.NET 4.0では 'SmtpClient'クラスも' IDisposable'です。 –