【VB.NET】メールにファイルを添付して送信するには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、メールにファイルを添付して送信する方法をご紹介します。

メールにファイルを添付して送信する

  • メールにファイルを添付するには、MimeKit名前空間のMimePartクラスを使います。
  • ファイルを添付してメールを送信する手順は、以下になります。

Step.1
本文の設定

Step.2
添付ファイルの情報をMIMEコンテンツに設定

Step.3
添付ファイルの表示形式の設定

Step.4
メール本文のエンコードの設定

Step.5
ファイル名の設定

Step.6
本文と添付ファイルの情報をMultipartクラスに設定

Step.7
Multipartの設定をMimeMessageクラスのBodyプロパティに設定

Step.1 本文の設定

  • 本文を設定するには、MimeKit名前空間のTextPartクラスを使います。

  • 本文のテキスト形式を設定する書式は以下になります。

MimeKit.TextPart(MimeKit.Text.TextFormat.テキスト形式)

指定できるテキスト形式
メンバ名 内容
Plain プレーンテキスト形式
Text プレーンテキスト形式のエイリアス
Flowed
フローテキスト形式
Html HTMLテキスト形式
Enriched エンリッチテキスト形式
RichText リッチテキスト形式

  • 本文の文字列を設定する書式は以下になります。

MimeKit.textPart.Text = 文字列

Step.2 添付ファイルの情報をMIMEコンテンツに設定

  • 添付ファイルの情報をMIMEコンテンツに設定する書式は以下になります。

MimeKit.MimePart.Content = New MimeKit.MimeContent(IO.File.OpenRead(添付ファイルのパス)

Step3. 添付ファイルの表示形式の設定

  • 添付ファイルの表示形式を設定する書式は以下になります。

MimeKit.MimePart.ContentDisposition = textPart.ContentDisposition

Step4. メール本文のエンコードの設定

  • メール本文のエンコードを設定する書式は以下になります。

MimeKit.MimePart.ContentTransferEncoding = MimeKit.ContentEncoding.Base64

Step5. 添付ファイル名の設定

  • 添付ファイル名を設定する書式は以下になります。

MimeKit.MimePart.FileName = IO.Path.GetFileName(添付ファイルのパス)

Step6. 本文と添付ファイルの情報をMultipartクラスに設定

  • 本文の情報をMultipartクラスに設定する書式は以下になります。

MimeKit.Multipart.Add(MimeKit.textPart)

  • 添付ファイルの情報をMultipartクラスに設定する書式は以下になります。

MimeKit.Multipart.Add(MimeKit.MimePart)

Step7. Multipartの設定をMimeMessageクラスのBodyプロパティに設定

  • Multipartの設定をMimeMessageクラスのBodyプロパティに設定する書式は以下になります。

message.Body = MimeKit.Multipart

サンプルプログラム

2 「Gmailに送信」ボタンクリック時に以下処理を行う。(Async修飾子を設定)
12 MimeKit.MimeMessageのインスタンス化。
14 Fromプロパティの設定。
15 Toプロパティの設定。
16 Subject(件名)プロパティの設定。
18 本文のテキスト形式をプレーンに設定。
19 本文の内容を、Textプロパティに設定。
21 ファイルパスを指定。
22 MimeKit.MimePartのインスタンス化。
24 添付ファイルの情報をMIMEコンテンツに設定。
25 添付ファイルの表示形式を、18行目で指定したプレーンテキストに設定。
26 メール本文のエンコードをBase64に設定。
27 ファイル名を「C:\sample\sample.txt」に設定。
29 MimeKit.Multipartのインスタンス化。
31 本文の情報をMultipartクラスに設定。
32 添付ファイルの情報をMultipartクラスに設定。
34 Multipartの設定をMimeMessageクラスのBodyプロパティに設定。
36 MailKit.Net.Smtp.SmtpClientのインスタンス化。
38 GmailのSMTPサーバに接続。
39 SMTPサーバのユーザー認証。
40 Gmailへ送信。
41 SMTPサーバの切断。
45 処理が完了したら、正常終了のメッセージをラベルに表示する。
47 処理の実行中にエラーが発生した場合、
49 エラー内容を取得し、ラベルに表示する。

関連記事

Gmailへメールを送信する

【VB.NET】Gmailへメールを送信するには?

Usingステートメント

【VB.NET】UsingステートメントでDisposeメソッドの呼び出しを自動化する

構造化例外処理

【VB.NET】構造化例外処理とは?

最後まで読んでいただき、ありがとうございました!

本のまとめ関連記事はこちら