【】Top

【】VB.NET
【】VB6.0

【】メールマガジンの購読
【】メールマガジンの解除






【】会社概要

【】お問い合わせ


姉妹サイト「バーチャルコネクション!」はこちらです。

姉妹サイト「七福神のメールでビンゴ!」はこちらです。

アイネットマコト

●24時間365日の安心をあなたにAT-LINK専用サーバ・サービスお勧めのサーバです。






添付メールを送信する。HTML形式でメールを送信する。

.NET では、もともとOSに組み込まれている
CDOSYS(Collaboration Data Objects for Windows 2000)
メッセージ コンポーネントを使用して
簡単に添付メール送信したり、
HTML形式でメール送信させることが可能です。


この機能を使えば、メールクライアントアプリケーションなども
作成することが可能です。
ここでは、「送信者、送信先、件名、本文、形式、添付ファイル」
を指定して
メール送信する場合での説明をしています。
※今回は、Cc,Bcc 指定にも対応させています。

フォームに次の様なコードを記述します


-----------VB.NETコーディングここから-------------------

1.メニューバーの中に、「プロジェクト」→「参照の追加」
 から、「.NET」タブが選択されていることを確認して、
   コンポーネント一覧の中から、
   System.Web.dllを1つ選んで「選択」を押し、
 「OK」を押します。

    ※この操作で、参照が追加されます。


2.フォームに、
    テキストボックスコントロール、
  ラベルコントロール、
    ボタンコントロール、
    チェックボックスコントロール、
    リストボックスコントロール
    を配置します。
    下記は、デフォルトのオブジェクトの名前と配置を示しています。


  ┏━━━━┓   ┏━━━━┓
  ┃Labale1 ┃   ┃TextBox1┃
  ┗━━━━┛   ┗━━━━┛
  ┏━━━━┓   ┏━━━━┓
  ┃Labale2 ┃   ┃TextBox2┃
  ┗━━━━┛   ┗━━━━┛
  ┏━━━━┓   ┏━━━━┓
  ┃Labale3 ┃   ┃TextBox3┃
  ┗━━━━┛   ┗━━━━┛
  ┏━━━━┓   ┏━━━━┓
  ┃Labale4 ┃   ┃TextBox4┃
  ┗━━━━┛   ┃※複数行┃
                 ┃        ┃
                 ┗━━━━┛

  ┏━━━━┓   ┏━━━━┓
  ┃Labale5 ┃   ┃TextBox5┃
  ┗━━━━┛   ┗━━━━┛
  ┏━━━━┓   ┏━━━━┓
  ┃Labale6 ┃   ┃TextBox6┃
  ┗━━━━┛   ┗━━━━┛


  ┏━━━━┓   ┏━━━━━┓
  ┃Labale7 ┃   □ CheckBox1┃
  ┗━━━━┛   ┗━━━━━┛

  ┏━━━━┓   ┏━━━━┓┏━━━━┓
  ┃Labale8 ┃   ┃ListBox1┃┃Button2 ┃
  ┗━━━━┛   ┃※複数行┃┗━━━━┛
                 ┃        ┃┏━━━━┓
                 ┃        ┃┃Button3 ┃
                 ┃        ┃┗━━━━┛
                 ┗━━━━┛

           ┏━━━━┓
           ┃Button1 ┃
           ┗━━━━┛



3.テキストボックスコントロール TextBox4は、
    複数行の入力とするため、
    Multiline プロパティを True にします。(複数行)
    ScrollBars プロパティを Vertical にします。
   (スクロールバー)

4.リストボックスコントロール ListBox1は、
    複数選択可能とするため、
    SelectionMode プロパティを MultiSimple にします。
   (複数選択可能)


5.配置したコントロールの
    ラベルのテキスト、チェックボックスのテキスト
    を入力項目にあわせて変更します。
    ボタンのテキストも機能に応じた名称に変更します。
    ※text プロパティの変更です。


  ┏━━━━┓   ┏━━━━┓
  ┃From    ┃   ┃TextBox1┃
  ┗━━━━┛   ┗━━━━┛
  ┏━━━━┓   ┏━━━━┓
  ┃To      ┃   ┃TextBox2┃
  ┗━━━━┛   ┗━━━━┛
  ┏━━━━┓   ┏━━━━┓
  ┃Subject ┃   ┃TextBox3┃
  ┗━━━━┛   ┗━━━━┛
  ┏━━━━┓   ┏━━━━┓
  ┃Body    ┃   ┃TextBox4┃
  ┗━━━━┛   ┃        ┃
                 ┃        ┃
                 ┗━━━━┛

  ┏━━━━┓   ┏━━━━┓
  ┃Cc      ┃   ┃TextBox5┃
  ┗━━━━┛   ┗━━━━┛
  ┏━━━━┓   ┏━━━━┓
  ┃Bcc     ┃   ┃TextBox6┃
  ┗━━━━┛   ┗━━━━┛

  ┏━━━━┓   ┏━━━━━┓
  ┃形式    ┃   □ HTML形式 ┃
  ┗━━━━┛   ┗━━━━━┛

  ┏━━━━┓   ┏━━━━┓┏━━━━┓
  ┃添付    ┃   ┃ListBox1┃┃添付追加┃
  ┗━━━━┛   ┃※複数行┃┗━━━━┛
                 ┃        ┃┏━━━━┓
                 ┃        ┃┃添付削除┃
                 ┃        ┃┗━━━━┛
                 ┗━━━━┛

           ┏━━━━┓
           ┃送信    ┃
           ┗━━━━┛





6.ボタンコントロールをダブルクリックして、
    ボタンのクリックイベントの編集を開始して、
    フォームの宣言部に、次のコードを記述します。
    ※フォームクラス定義(Public Class Form1)より、
    上に記述してください。

    'プロジェクトで参照されていることを確認して、インポート
    Imports System.Web.Mail
    Imports System.IO


  さらに、次のコードを記述します。


    'メールを送信する
    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click

        Dim MyMail As MailMessage = New MailMessage 'メール

        '送信者
        MyMail.From = TextBox1.Text
        '送信先
        MyMail.To = TextBox2.Text
        '件名
        MyMail.Subject = TextBox3.Text
        '本文
        MyMail.Body = TextBox4.Text


        If TextBox5.Text.Length > 0 Then
            '送信先Cc
            MyMail.Cc = TextBox5.Text
        End If

        If TextBox6.Text.Length > 0 Then
            '送信先Bcc
            MyMail.Bcc = TextBox6.Text

        End If

        'エンコーディング
        MyMail.BodyEncoding = _
        System.Text.Encoding.GetEncoding("ISO-2022-JP")

        'メールフォーマット
        If CheckBox1.Checked Then
            'html形式
            MyMail.BodyFormat = MailFormat.Html
        Else
            'プレーン
            MyMail.BodyFormat = MailFormat.Text
        End If

        Dim i As Integer
        Dim MyMailAttachment As System.Web.Mail.MailAttachment


        If ListBox1.Items.Count > 0 Then
            For i = 0 To ListBox1.Items.Count - 1

                '添付ファイル指定
                MyMailAttachment = New _
                System.Web.Mail.MailAttachment( _
                 ListBox1.Items.Item(i), _
                   System.Web.Mail.MailEncoding.Base64)

                '添付ファイルを追加
                MyMail.Attachments.Add(MyMailAttachment)
            Next
        End If




        'メールを送信する
        System.Web.Mail.SmtpMail.Send(MyMail)



    End Sub

    '添付ファイルを追加する
    Private Sub Button2_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button2.Click

        Dim myStream As Stream
        Dim openFileDialog1 As New OpenFileDialog
        Dim strPath As String

        'カレントドライブとパスの設定
        openFileDialog1.InitialDirectory = "c:\"

        'フィルターの設定(テキストファイル、すべてのファイル)
        openFileDialog1.Filter = _
           "txt files (*.txt)|*.txt|All files (*.*)|*.*"

        'フィルターの設定(2番目のすべてのファイル)
        openFileDialog1.FilterIndex = 2

        'ディレクトリ情報の更新
        openFileDialog1.RestoreDirectory = True

        If openFileDialog1.ShowDialog() = DialogResult.OK Then
            myStream = openFileDialog1.OpenFile()
            If Not (myStream Is Nothing) Then
                ' Insert code to read the stream here.

                'ラベルへオープン対象のパスをセットしています。
                strPath = openFileDialog1.FileName
                ListBox1.Items.Add(strPath)
                myStream.Close()
            End If
        End If

    End Sub

    '添付ファイルを削除する
    Private Sub Button3_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button3.Click

        Dim i As Integer

        If ListBox1.SelectedIndices.Count > 0 Then
            For i = 0 To ListBox1.SelectedIndices.Count - 1
                ListBox1.Items.RemoveAt( _
                ListBox1.SelectedIndices.Item(0))
            Next
        End If

    End Sub


    'フォームロード時
    Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        TextBox5.Text = ""
        TextBox6.Text = ""

    End Sub


7.ビルドして実行します。

8.フォームに表示された
    「From」欄に、送信者のメールアドレスを入力します。

9.フォームに表示された
    「To」欄に、送信先のメールアドレスを入力します。

10.フォームに表示された
    「Subject」欄に、メールの件名を入力します。

11.フォームに表示された
    「Body」欄に、メールの本文を入力します。

12.フォームに表示された
    「Cc」欄に、送信先のメールアドレスを入力します。
     ※省略可能

13.フォームに表示された
    「Bcc」欄に、送信先のメールアドレスを入力します。
     ※省略可能

14.フォームに表示された
    「メール形式」欄で、
     HTML形式のチェックが入っている場合は、
     チェックをはずします。

15.フォームに表示された
    「添付ファイル」欄で、
     「添付追加」のボタンを押し、
     添付するファイルを選びます。

16.フォームに表示された
    「添付ファイル」欄に、
     添付ファイルのパスが追加されます。

     ※15〜16を複数回繰り返すと、
     複数ファイルを追加で出来ます。
     また、「添付削除」ボタンで、リストで選択状態になっている
     添付ファイルのパスを削除できます。(添付の削除)


17.フォームに表示された「送信」を押すと、
    メールが送信されます。



-----------VB.NETコーディングここまで-------------------

今回は、添付ファイルだけではなく、
html フォーマットでの送信機能も網羅したサンプルを
公開しています。
html フォーマットでの送信は、
上記説明部分の 14.で、

HTML形式のチェックを入れることで送信できます。

HTML形式のメールを送る場合は、
上記説明部分の 11.で、
メールの本文もHTMLソースでなければいけません。




 

http://anetm.com/dev/d.cgi?SC=DTDTL&o=OlO

Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。

「これがほしかった!厳選サンプルツール集」の注意点
●当サイトはリンクフリーです。
2005/10/06(木)00:05 更新