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

VisualStudio2005で開発をしています。

SmtpClientクラスを使ってメールを自動送信するアプリを作成中なのですが、
社内サーバー同士でのメール送信は問題ないのですが、社外のメールサーバーのアドレスを指定した場合に、メールが送信されなくて困っています。

○例:)yyyyyy@xxxxxx.co.jp → zzzzzz@xxxxxx.co.jp
×例:)yyyyyy@xxxxxx.co.jp → zzzzzz@zzzzz.com

調べてはみたのですが、原因を特定することができなかったので質問させていただきました。

1.googleやyahooなどのメールサーバーに対してでもメール送信できるようにしたいのですが、どの様にすればいいでしょうか?
2.上記のように書きましたが、本当はメールサーバまでは送信されていて、クライアントが受け取れていないという可能性もあるのでしょうか?

皆様のお力を借りたく思います。
どうかよろしくお願いいたします。

↓↓↓以下、現在作成中のソースコード↓↓↓
Private Sub btn_Send_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Send.Click
'送信者
Dim senderMail As String = "xxxxx@yyyyy.co.jp"

''宛先
Dim recipientMail As String = "xxxxx@yyyyy.com"

'件名
Dim subject As String = "タイトル"

'本文
Dim body As String = "本文1行目" + vbCrLf + vbCrLf + "本文3行目"

Dim sc As New System.Net.Mail.SmtpClient()

' メールメッセージインスタンスの生成
Dim objMessage As New System.Net.Mail.MailMessage(senderMail, recipientMail, subject, body)

'SMTPサーバーを指定する
sc.Host = "mail.yyyyy.co.jp"
sc.Port = 25

'メールを送信する
sc.Send(objMessage)

End Sub

A 回答 (3件)

その社内メールサーバが 外部向けのルーティングを行わないような設定をされてはいませんか?



メールサーバの管理者に問い合わせてみましょう
または メールサーバから 配信不能メールが返ってきたりしていませんか?
Mail-Deamon とかが送信者で 添付ファイルつきの物ですが ・・・
    • good
    • 0
この回答へのお礼

>その社内メールサーバが 外部向けのルーティングを行わないような設定をされてはいませんか?
外部向けのルーティングを行わないような設定は特にしてないそうです

実際、Outlookなどのメーラーを使用するとGoogleやYahooにもメールが送信され、受信ボックスに入っています

>または メールサーバから 配信不能メールが返ってきたりしていませんか?
配信不能メールも返ってきません

どうにかプログラムから送れるようにならないでしょうか?

お礼日時:2009/06/29 13:43

メールサーバーのポートは標準設定以外なら 毎回設定する必要があると思いますよ



dim sc as new SmtpClient
MsgBox sc.Port
を実行すると『25』が表示されると思います

gmail.comなら これを
dim sc as new SmtpClient
sc.Port = 465

yahooなら
dim sc as new SmtpClient
sc.Port = 587

といった具合に指定しないとだめなような気がします
    • good
    • 0
この回答へのお礼

たびたび申し訳ありませんが、質問させてください。

試しにgmail経由の宛先をyahooにした場合
(質問での送信者が<xxxxxx@gmail.com>宛先が<xxxxxx@yahoo.co.jp>)
にした場合、

sc.Host = "smtp.gmail.com"
sc.Port = 587
sc.EnableSsl = True
sc.Credentials = New System.Net.NetworkCredential("UserID", "PassWord")

と指定するだけで送信する事ができました。

しかし、社内サーバーを送信者に指定した時、gmailやyahooなどにメールを送ろうとすると、送信は成功するようですがgmailやyahooの受信ボックス(迷惑メールボックスも)には受信されておりません。

何が原因なのか特定できず、困っています。
ご面倒をおかけしますが、何卒ご回答の程よろしくお願いします。

お礼日時:2009/06/29 10:47

Yahooやgoogleってメールサーバーのポートが変更されていますよ


YahooBBなどで直接Yahooに接続しているなら 25でいいのですが
... googleの場合は直接続のプロバイダってあったかなぁ?
他のプロバイダ経由ですと Yahooの場合は587 googleの場合は465のはずですよ
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>他のプロバイダ経由ですと Yahooの場合は587 googleの場合は465のはずですよ
これは下記のように指定する事を指しているのでしょうか?
sc.Host = "smtp.gmail.co.jp"
sc.Port = 587

メールを送る際には相手のメールサーバーのポートを毎回プログラムで指定してやる必要があるのでしょうか?

上記はググって調べてみたのですが、回答が得られませんでしたので再度質問させて頂きました。

お礼日時:2009/06/26 15:17

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