閲覧総計:3786  (本日:2  昨日: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ページ

webmail02.JPG

受信したメール

webmail01.JPG

【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


選択肢 投票
参考になった 2  
ふつう 0  
参考にならなかった 0  

添付ファイル: filewebmail02.JPG 555件 [詳細] filewebmail01.JPG 531件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-04-19 (水) 19:11:28 (1691d)