訪問して頂きありがとうございます。まさふくろーです。
この記事では、Gmailへメールを送信する方法をご紹介します。
目次
Gmailへメールを送信する
前準備
MailKitのインストール
①「ツール」タブをクリック⇒②「NuGetパッケージマネージャー」を選択⇒③「ソリューションのNuGetパッケージの管理」を選択します。
①「参照」をクリック⇒②検索窓に「MailKit」と入力し、検索⇒③検索結果から「MailKit」を選択⇒④「プロジェクト」をチェック⇒⑤「インストール」をクリックします。
「OK」をクリックすると、インストールが開始されます。
Gmailのセキュリティの設定
「535: 5.7.8 Username and Password not accepted」
2段階認証プロセスを有効にする場合
①Gmailの右上のアイコンをクリック⇒②「Googleアカウントを管理」をクリックします。
「セキュリティ」をクリックします。
「2段階認証プロセス」をクリックします。
「使ってみる」をクリックします。
本人確認をしたのち「有効にする」をクリックします。
続けて、「アプリパスワード」を設定します。
「アプリパスワード」をクリックします。
①アプリ「メール」、デバイス「Windowsパソコン」を選択⇒②「生成」をクリックします。
アプリパスワードが設定されます。
安全性の低いアプリのアクセスを有効にする場合
①Gmailの右上のアイコンをクリック⇒②「Googleアカウントを管理」をクリックします。
「セキュリティ」をクリックします。
「アクセスを有効にする」をクリックします。
有効にします。
メールを送信するための処理の流れ
おおまかな流れ
詳細
Step.0 非同期処理の宣言
Async Sub メソッド名
Step.1 宛先、タイトル、本文の設定
MimeKit.MimeMessage.From.Add(New MimeKit.MailboxAddress(Fromの名前, Fromのメールアドレス)
MimeKit.MimeMessage.To.Add(New MimeKit.MailboxAddress(Toの名前, Toのメールアドレス)
MimeKit.MimeMessage.Subject = 文字列
MimeKit.TextPart(MimeKit.Text.TextFormat.テキスト形式)
指定できるテキスト形式 | |
メンバ名 | 内容 |
Plain | プレーンテキスト形式 |
Text | プレーンテキスト形式のエイリアス |
Flowed |
フローテキスト形式 |
Html | HTMLテキスト形式 |
Enriched | エンリッチテキスト形式 |
RichText | リッチテキスト形式 |
MimeKit.textPart.Text = 文字列
MimeKit.MimeMessage.Body = textPart
Step.2 SMTPサーバに接続
Await MailKit.Net.Smtp.SmtpClient.ConnectAsync(ホスト名, ポート番号)
Step.3 SMTPサーバのユーザー認証
Await MailKit.Net.Smtp.SmtpClient.AuthenticateAsync(Fromのメールアドレス, 上記で取得したアプリパスワード)
Step.4 メール送信
Await MailKit.Net.Smtp.SmtpClient.SendAsync(MimeKit.MimeMessage)
Step.5 SMTPサーバの切断
Await client.DisconnectAsync(True)
サンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Public Class Form1 Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim fromAdress As String = TextBox1.Text Dim toAdress As String = TextBox2.Text Dim subject As String = TextBox3.Text Dim body As String = TextBox4.Text Dim pass As String = "samplepass" Try Dim message = New MimeKit.MimeMessage() message.From.Add(New MimeKit.MailboxAddress("Fromサンプル", fromAdress)) message.To.Add(New MimeKit.MailboxAddress("Toサンプル", toAdress)) message.Subject = subject Dim textPart = New MimeKit.TextPart(MimeKit.Text.TextFormat.Plain) textPart.Text = body message.Body = textPart Using client As New MailKit.Net.Smtp.SmtpClient() Await client.ConnectAsync("smtp.gmail.com", 587) Await client.AuthenticateAsync(fromAdress, pass) Await client.SendAsync(message) Await client.DisconnectAsync(True) End Using Label1.Text = "送信しました。" Catch ex As Exception Label1.Text = Err.Description End Try End Sub End Class |
2 | 「Gmailに送信」ボタンクリック時に以下処理を行う。(Async修飾子を設定) |
13 | MimeKit.MimeMessageのインスタンス化。 |
15 | Fromプロパティの設定。 |
16 | Toプロパティの設定。 |
17 | Subject(件名)プロパティの設定。 |
19 | 本文のテキスト形式をプレーンに設定。 |
20 | 本文の内容を、Textプロパティに設定。 |
21 | 19、20行目で設定した内容をBodyプロパティに設定。 |
23 | MailKit.Net.Smtp.SmtpClientのインスタンス化。 |
25 | GmailのSMTPサーバに接続。 |
26 | SMTPサーバのユーザー認証。 |
27 | Gmailへ送信。 |
28 | SMTPサーバの切断。 |
32 | 処理が完了したら、正常終了のメッセージをラベルに表示する。 |
34 | 処理の実行中にエラーが発生した場合、 |
36 | エラー内容を取得し、ラベルに表示する。 |
関連記事
メールの宛先にCcを追加して送信する
メールにファイルを添付して送信する
Usingステートメント
【VB.NET】UsingステートメントでDisposeメソッドの呼び出しを自動化する
構造化例外処理
最後まで読んでいただき、ありがとうございました!