DOBON.NET DOBON.NETプログラミング掲示板過去ログ

SmtpClientクラスを使用したメール送信について。特定のアドレスに送信出来ない。

環境/言語:[環境XP,使用言語VB.NET,.NET Frameworkのバージョン2.0]
分類:[.NET]

はじめまして。
初投稿になります。ドンキと申します。いつもお世話になっております。
プログラミング初心者で、わからないことだらけなので、
色々とお手数お掛けしてしまうことにかもしれませんが、
どうぞ宜しくお願い致します。

[質問内容]

現在VB.Netによる、SmtpClientクラスを使用したメール送信画面の作成を行っています。
詳細にあたっては、当サイト内.Net Tipsを参考(ほぼコピペ)にさせて頂きました。
その結果、社内のアドレスには送信出来るのですが、
その他(たとえばGoogle MailやYahoo Mailなど)にはメールを送信出来ませんでした。

送信しようとすると、下記コード(下から2行目)が正常に処理が進まず、Exceptionが発生。
「トランザクションに失敗しました。 サーバーの応答: 5.7.1 <yattemiseyou@yahoo.co.jp>: Relay access denied」

となります。

指定しているは、自社サーバIPアドレス、ポート番号は25です。
自社内では送信できるので、サーバーの指定が間違っているということは無いように思います。
ネットでも調べましたが、さっぱりわかりません。指定しているサーバの問題でしょうか?

ささいな情報でも良いので教えて頂けると助かります。宜しくお願い致します。


>変更省略はありますが、コードは下記の通りです。
Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding(50220)'Jisコード
Dim msg As New System.Net.Mail.MailMessage()
Dim sc As System.Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient()

msg.From = New System.Net.Mail.MailAddress(***@****.co.jp, "名前", enc) '送信者
msg.To.Add(New System.Net.Mail.MailAddress(***@***.co.jp, "受信者名称", enc))'宛先
msg.Subject = MailInfoBean.Subject'件名
msg.Body = MailInfoBean.Text'本文

==中略==

sc.Host = "自社サーバIPアドレス"
sc.Port = 25
sc.Send(msg)'←エラー発生
msg.Dispose()
■No27291に返信(ドンキさんの記事)
このアプリを使用せずにメール送信をするときにどんな設定で送るのかです。その設定と同じように送信して下さい。
■No27292に返信(shuさんの記事)
> ■No27291に返信(ドンキさんの記事)
> このアプリを使用せずにメール送信をするときにどんな設定で送るのかです。その設定と同じように送信して下さい。

出来ました!
shuさんのご指摘を参考にして色々と設定をいじってみたところ、
次の修正で実現可能になりました。

1.SMTP認証の不在
 →指定したサーバーにアクセスするのに必要でした。要するにサーバー管理者
  側が定めるユーザIDとパスを設定していなかったのだと理解しました(これ設定しないと無制限にアクセス出来てしまう?)。
2.ポート番号の間違い
 →間違えていました。社内用と外部兼用の番号がありました。

>加筆・修正コード
'ポート番号
client.Port = 587
'ユーザー名とパスワードを設定する(メールサーバ(管理者)側で管理する情報)
client.Credentials = New System.Net.NetworkCredential("***", "*****")

以上です。
どうもありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板