閲覧総計:4245 (本日:1 昨日:0)
ASP.NETで作成したWebページから電子メールを送信する方法を確認した。 09/08/10
開発環境:VWD2005+AJAX1.0+Toolkit + SQL Server2005
サーバ:ASP.NET2.0+AJAX1.0 + SQL Server2005
【機能】Webページから電子メールを送信する基本機能を確認。
.NET Framework 2.0以降では、System.Net.Mail名前空間のMailMessageクラスと
SmtpClientクラスを使うことで、プログラムで簡単にメールを送信できます。
しかし、日本語が一部文字化けするので、
http://www.atmarkit.co.jp/fdotnet/dotnettips/696jismail/jismail.html
の情報を基に日本語の文字化けのないメール送信の基本部分のみのプログラムを作成
しました。
(参考:過去情報).NET Framework 1.X以前はSystem.Web.Mail名前空間のSmtpMailク
ラスが提供されていた。(旧クラス)
メールを送信するWebページ
受信したメール
【WebMail.aspx】
<%@ Page Language="VB" %> <%@ Import Namespace="System.Text" %> <%@ Import Namespace="System.Net.Mail" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> '参考ページ:日本語文字化けのないメール送信法 08/01/17 'http://www.atmarkit.co.jp/fdotnet/dotnettips/696jismail/jismail.html Private Function myEncode(ByVal str As String, ByVal enc As System.Text.Encoding) As String Dim base64str As String = Convert.ToBase64String(enc.GetBytes(str)) Return String.Format("=?{0}?B?{1}?=", enc.BodyName, base64str) End Function Private Sub Send_JIS_Mail() Dim smtp As New SmtpClient() Dim msg As New MailMessage() Dim myEnc As Encoding = Encoding.GetEncoding("iso-2022-jp") ' 送信元 msg.From = New System.Net.Mail.MailAddress( _ "suzuki_ichirou@hoge.co.jp", myEncode("鈴木 一郎", myEnc)) ' 送信先 msg.[To].Add(New System.Net.Mail.MailAddress(TextBox1.Text)) ' 件名 msg.Subject = myEncode(TextBox2.Text, myEnc) ' 本文 Dim sBody As String = TextBox3.Text Dim altView As AlternateView = _ AlternateView.CreateAlternateViewFromString( _ sBody, myEnc, System.Net.Mime.MediaTypeNames.Text.Plain) altView.TransferEncoding = _ System.Net.Mime.TransferEncoding.SevenBit msg.AlternateViews.Add(altView) smtp.Host = "smtp.hoge.co.jp" ' SMTPサーバ smtp.Send(msg) ' メッセージを送信 End Sub Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.EventArgs) 'メール送信 Send_JIS_Mail() End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>メール送信(Webメール)基本機能</title> </head> <body> <form id="form1" runat="server"> <div> メール送信(Webメール) 基本機能 09/08/10<br /> <br /> 【機能】メール送信(Webメール)を行う、基本機能のみの実装<br /> 送信先e-mail:<asp:TextBox ID="TextBox1" runat="server" Width="278px"></asp:TextBox><br /> 件名:<asp:TextBox ID="TextBox2" runat="server" Width="330px"></asp:TextBox><br /> 本文:<br /> <asp:TextBox ID="TextBox3" runat="server" Height="80px" TextMode="MultiLine" Width="370px"></asp:TextBox><br /> <asp:Button ID="Button1" runat="server" Text="メール送信" OnClick="Button1_Click1" /></div> </form> </body> </html>
【参考にしたページ】
1.日本語文字化けのないメール送信法 08/01/17
http://www.atmarkit.co.jp/fdotnet/dotnettips/696jismail/jismail.html