中堅プログラマーの備忘録

忘れっぽくなってきたので備忘録として・・・

【vb.net】windowsアプリケーションからGmailでメールを送信する

1.概要

アプリケーションを作成する際に
簡易的に状態通知を行いたい時があります。
メールサーバーを構築してもいいですが、
そこまでする必要性があるのか?と思うときもあります。
そんな時にGmailを使って状態通知が出来れば
開発コストも抑えられるし、何より無駄な設定をしたり、不要なコードを書かなくても済みます。
今回はWindowsアプリケーションからGmailを使ってメールを送信してみます。
googleアカウントはフリーのものを使っています。

開発環境:visual studio 2015
開発言語:VB.net

2.スクリプト

任意の名称のFormアプリケーションを作成しています。

Imports System.Net.Mail
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        MailSend("TOメールアドレス", "FROMメールアドレス", "パスワード", "test", "テスト送信です。")
    End Sub
    Private Sub MailSend(ByVal ToAddress As String,
                             ByVal FromAddress As String,
                             ByVal FromAddressPass As String,
                             ByVal SendSubject As String,
                             ByVal SendMessage As String)
        Dim msg As System.Net.Mail.MailMessage
        Try
            msg = New System.Net.Mail.MailMessage(FromAddress, ToAddress, SendSubject, SendMessage)
        Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub

        End Try

        Dim sc As New System.Net.Mail.SmtpClient()
        Dim res As String
        'gmailのSMTPサーバの設定
        sc.Host = "smtp.gmail.com"
        sc.Port = 587
        sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
        'ユーザー名,パスワード
        sc.Credentials = New System.Net.NetworkCredential(FromAddress, FromAddressPass)
        'SSL
        sc.EnableSsl = True
        sc.Timeout = 10000
        Try
            sc.Send(msg)
            res = "送信に成功しました。"
        Catch ex As SmtpException
            res = ex.Message
        End Try
        msg.Dispose()
        MsgBox(res)
    End Sub

End Class

3.結果

アプリケーションを起動し問題なく送信できていれば
下記のとおりメッセージボックスが表示されます。

f:id:tsu--kun:20190731143115p:plain

受信ボックスにメールが届いているはずです。