メールの送信

メールの送信


サンプル コードのダウンロード (vbmigtips_mail.exe, 98.7 KB)


メールの送信機能を持ったアプリケーションを作成する場合、Visual Basic 6.0 では、Microsoft MAPI Controls 6.0 を使用していました。一方、Visual Basic .NET では、System.Web.Mail 名前空間 の SmtpMail クラスを使用しメールの送信機能を実装することができます。Mail.SmtpMail クラスは、CDOSYS (Collaboration Data Objects for Windows 2000) メッセージ コンポーネントを使用して、メール送信を実現しています。そこで今回は、Visual Basic .NET でメールの送信機能を持ったアプリケーション (図1) を作成する方法を紹介します。

 
 図1

「送信」ボタンをクリックすると、メールが送信され送信終了のメッセージボックスが表示されます。「送信」ボタンの実装コードは以下のとおりです (事前に、[参照設定]で「System.Web」を追加しておく必要があります)。

Private mm As New System.Web.Mail.MailMessage
Private ma As System.Web.Mail.MailAttachment
Private file As String

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
mm.From = txtForm.Text
mm.To = txtTo.Text
mm.Subject = txtSubject.Text
mm.Body = txtBody.Text
If file <> Nothing Then
ma = New System.Web.Mail.MailAttachment(file, Web.Mail.MailEncoding.Base64)
mm.Attachments.Add(ma)
End If
System.Web.Mail.SmtpMail.Send(mm)

txtForm.Clear()
txtTo.Clear()
txtSubject.Clear()
txtBody.Clear()

Me.Refresh()
MessageBox.Show("メールを送信しました。", "送信終了")
Catch ex As Exception
MessageBox.Show("送信できませんでした。", "エラー")
End Try
End Sub
リスト1

MailMessage クラスの From プロパティに差出人 (受信者) を、To プロパティに送信先を、Subject プロパティにメールの件名を、 Body プロパティにメールの本文をそれぞれ設定します。また、Attachments プロパティで本文とともに送信する添付ファイルを設定します。上記 (リスト1) のコードを実装し、図1 の「送信」ボタンをクリックすると、メールが送信されます。そして、各テキストボックスのデータが削除され、図2 の送信完了の通知が表示されます。

 
 図2

リスト1 を実装しても、添付ファイルを送信することはできません。次は、下記のコードを実装して、添付ファイルを指定できるようにします。

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim ofd As New OpenFileDialog
ofd.InitialDirectory = "C:/work"
ofd.Filter = "すべてのファイル(*.*)|*.*"
ofd.Title = "添付するファイルを選択してください"
ofd.RestoreDirectory = True
If ofd.ShowDialog() = DialogResult.OK Then
file = ofd.FileName
txtAttachment.Text = System.IO.Path.GetFileName(file)
End If
End Sub
リスト2

図1 の「...」ボタンをクリックすると、ダイアログボックス (図3) を開き、添付するファイルを指定します。

 
 図3

上記 (リスト2) の「ofd.InitialDirectory = "C:/work"」でダイアログボックスが表示されたときのデフォルトフォルダを指定します。「ofd.Filter = "すべてのファイル(*.*)|*.*"」で[ファイルの種類]に表示される選択肢を指定し、「ofd.Title = "添付するファイルを選択してください"」でダイアログボックスのタイトルを指定します。そして、「If ofd.ShowDialog() = DialogResult.OK Then」の「ofd.ShowDialog()」でダイアログボックスを表示し、[OK]ボタンをクリックされると、「file = ofd.FileName」で選択されたファイル名 (パス) を取得し、「txtAttachment.Text = System.IO.Path.GetFileName(file)」で、拡張子を含むファイル名のみをテキストボックスに表示されます (図4)。ファイルパスからファイル名 (拡張子を含む) を取得する場合、System.IO 名前空間の Path クラスで GetFileNameメソッドを使用します。

 
 図4

これにより、図1 のアプリケーションで添付するファイルを指定し、メールで送信することができます。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值