メールの送信(Gmail)

タグの編集
投稿者 N88-BASIC  (社会人) 投稿日時 2017/3/28 09:05:51
実行中の途中経過を出先で確認するために、メールにて確認しようと思っております。

本掲示板に紹介されている例を利用させていただいておりますが、送信がうまく行えません。
対処方法などをご存知でしたらご教授ください。

Private Sub mnSendMail_Click(sender As Object, e As EventArgs) Handles mnSendMail.Click
     Try
         Dim sReceiver As String = "*****@yahoo.co.jp"
         Dim sTitle As String = "fromVisualBasic"
         Dim sContents As String = "test message from VisualBasic."
         Dim sSender As String = "------@gmail.com"
         Dim sPassword As String = "+++++++"
         Dim sMessagingSpec As New System.Net.Mail.MailMessage(sSender, sReceiver, sTitle, sContents)
         Dim sSmtpClient As New System.Net.Mail.SmtpClient()

         sSmtpClient.Host = "smtp.gmail.com"
         sSmtpClient.Port = 465
         sSmtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
         sSmtpClient.Credentials = New System.Net.NetworkCredential(sSender, sPassword)
 
         sSmtpClient.Send(sMessageSpec)

         sMessagingSpec.Dispose()
         sSmtpClient.Dispose()

     Catch ex As Exception

         MsgBox(ex.Message)

     End Try
 End Sub

※SMTPホスト名とポートは Windows 10 に付属のメールアプリに表示される情報を参考にしました。
 実行結果は”メールは送信できませんでした”
 本メールアドれるは2段階認証のものです
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2017/3/28 09:21:47
STARTTLS のポート 587 で接続してみて下さい。
https://support.google.com/mail/answer/7126229

それで駄目なら、ファイアウォールが解放されているか確認を。
投稿者 N88-BASIC  (社会人) 投稿日時 2017/3/29 09:15:10
魔界の仮面弁士さん、ご回答ありがとうございました。

ご案内いただいたアドバイスと、ご案内いただいたリンク先に記載の情報から、下記のように修正することで無事送信できました。

            sSmtpClient.Port = 587      ’ 修正
            sSmtpClient.EnableSsl = True  ’ 追加


ただ、最初の gmail アドレスは2段階認証のためアプリパスワードを取得しなくてはならないようで今回は新たなアドレスを取得しました。ターゲットマシンが未定なのと送信者を別に分けたほうが、運用上便利だと判断したためです。

今後ともよろしくお願いいたします。
投稿者 N88-BASIC  (社会人) 投稿日時 2017/3/29 09:18:13
追記です。

ファイヤーウォールは問題ないようです。
特に、警告も出ませんでした(以前は自作FTPで動作確認が出たような気がします)。

以上 よろしくお願いいたします。