プロが教える店舗&オフィスのセキュリティ対策術

VB.NETからGmail経由でメールを送信について

いつも大変お世話になっています。
VB.NETからGmail経由でメールを送信についてご教授願います。

Dim mailMessage As New System.Net.Mail.MailMessage _
([送信元アドレス], [送信先アドレス], "題名", "本文")

Dim smtpClient As New System.Net.Mail.SmtpClient _
("smtp.gmail.com")

smtpClient.Credentials = New System.Net.NetworkCredential _
([送信元アドレス], "パスワード") ' << ※1

'smtpClient.EnableSsl = True ’<< ※2

smtpClient.Port = 587

smtpClient.Timeout = 10000

smtpClient.Send(mailMessage)

<問題>
「送信できませんでした」とのエラーメッセージが表示。

<所感>
※1で[送信元アドレス]を設定しているのが原因??
※2[True]/[False]を変更しても送信できませんでした。

A 回答 (1件)

tekesuta_1985さんのソースをみても、悪くなさそうですが、意外とルータやファイアウォールでポート番号587空いていないって落ちはないでしょうか?


あと下のソースで送信してみたら私の環境ではgmailからyahooへ送信できました。(asp.netですが。多分変わんないと思います。)

tekesuta_1985さんのとあまり変わりませんが、一度使ってみてください。
あと作成の参考にしたサイトも載せておきます。


'MailMessageの作成
Dim msg As New System.Net.Mail.MailMessage()
'送信者
msg.From = New System.Net.Mail.MailAddress("aaa@gmail.com", "送信者の名前")
'宛先
msg.To.Add(New System.Net.Mail.MailAddress("bbb@yahoo.co.jp", "宛先の名前"))
'件名
msg.Subject = "ここに件名"
'本文
Dim strbText As New StringBuilder
strbText.AppendLine("一行ずつ本文")
strbText.AppendLine("一行ずつ本文")
strbText.AppendLine("一行ずつ本文")

msg.Body = strbText.ToString
Dim sc As New System.Net.Mail.SmtpClient()
'SMTPサーバーを指定する
sc.Host = "smtp.gmail.com" '←SMTPサーバ指定
sc.Credentials = New System.Net.NetworkCredential("aaa@gmail.com", "password") '←SSL認証用ユーザー名(メールアドレス)とパスワードを指定
sc.Port = "587" 'ポートを指定
sc.EnableSsl = True 'SSL認証を使うか指定

'メッセージを送信する
sc.Send(msg)

'後始末
msg.Dispose()

参考URL:http://d.hatena.ne.jp/hsb_kuma/20080221/1203581416
    • good
    • 0
この回答へのお礼

レスありがとうございます!
>意外とルータやファイアウォールでポート番号587空いていないって落ちはないでしょうか?

盲点でした。その可能性が高いかもしれません。
調べてみます。ありがとうございました。m(__)m

また、引き続き質問をするかもしれません。
その時は、お手すきの時で結構ですのでご助言ください。
よろしくお願い致します。

お礼日時:2010/09/14 15:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!