質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

2回答

4620閲覧

vb.netのプログラムから送られるメールが一部相手に届かない

yggd0114

総合スコア91

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2019/09/12 04:42

VB.netで作成したプログラムから送られるメールが一部相手(gmail.comやicloud.com宛)に届かない現象が起きました。

メールサーバーはlinuxにsendmailとpostfixをインストールして、
ドメインを外部で取得しそちらを利用しています。
linuxサーバからの直接のメールだと問題なく相手に届く場合もあります。

何か考えられる原因はありますでしょうか?
足りない設定や考えれられる要因などがあれば教えていただけますと幸いです。

メールの本文にはサイトのURLも含まれていますので、そちら原因になりうることは
あるのでしょうか?

以下、VB.netで利用しているプログラムの一部を記載します。

VB

1'メッセージの作成 2Dim msg As New System.Net.Mail.MailMessage() 3msg.From = New System.Net.Mail.MailAddress(送り先address, 表示名) 4msg.To.Add(New System.Net.Mail.MailAddress(宛先address,表示名)) 5msg.Subject = 件名 6msg.Body = メッセージ本文 7 8Dim sc As New System.Net.Mail.SmtpClient() 9 10'SMTPサーバーの設定 11sc.Host = "ホスト" 12sc.Port = "ポート" 13sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network 14'ユーザー名とパスワードの設定 15sc.Credentials = New System.Net.NetworkCredential(user,pass ) 16'メッセージの送信 17sc.Send(msg)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2019/09/12 04:51

「直接のメールだと問題なく相手に届く場合もあります」とはどういうことですか? 届かない場合もあるのですか? また、届かないというのは、エラーメッセージが返ってくるのでしょうか? また、相手側のセキュリティ設定等(拒否など)はどうでしょうか?
yggd0114

2019/09/12 04:56

おそらく、セキュリティの強弱で届く場合と届かない場合があるのではないかと思っておりますが、そこまでは検証しきれていません。 届かないのは、メッセージが返ってくるわけではなかったです。 相手側のセキュリティ設定はデフォルトのものだと思います。(多数の人にメールを送った時にgmailの人から届かないと連絡があることが多かったです。確認している限りではあとはicloud.comです。)
take88

2019/09/12 05:22

届く場合と、届かない場合で、メールヘッダーなどの差異を探してみるとなにかわかるかも。または、SMTPサーバーのログなどで Gmail等が返すSTMPのエラーコードがわかれば 対策が見えてくるかもしれません。
Y.H.

2019/09/12 06:28

> 届く場合と、届かない場合 これは、 あるアドレスに送信して届く場合もあり、届かない場合もあるということですか? それとも あるアドレスには届くが別のアドレスには届かないということですか?
scsi

2019/09/12 06:50

VB.netで指定しているSMTPサーバは 質問者が用意した メールサーバですか? Gmailの迷惑メールフォルダに振り分けれているわけではありませんか?
guest

回答2

0

プロトコルアナライザー (WireShark) を使って、 SmtpClient と SMTP サーバーのコマンド/レスポンスをキャプチャーして、どうなっているのか調べてみてはいかがですか?

イメージ説明

以前、SMTP サーバーと SmtpClient の相性の問題で認証ができないということがありました。上の画像がそのときに WrieShark を使って調べた例です。詳しい話は以下の記事を見てください。

Web アプリからメール送信
http://surferonwww.info/Hobby/Computer/PcPage7.aspx

同じ問題なのかどうかは分かりませんが、それに類する相性の問題はコマンド/レスポンスをキャプチャーして調べないと分からないと思います。

投稿2019/09/12 05:54

編集2019/09/12 05:56
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2019/09/12 05:57

この場合、送信先のメールアドレスに関わらず、そもそもメールの送信が行えないのではないでしょうか?
退会済みユーザー

退会済みユーザー

2019/09/12 09:30 編集

「この場合」というのは、上に私が書いた SMTP 認証に失敗する場合ということですか? その場合はもちろんメールは送信できませんが、認証に失敗したということがメールを送信できない原因と分かるので、それなりの対処ができたという話です。何か変なところがありますか?
YAmaGNZ

2019/09/12 06:11

私が書いた「この場合」というのは、SurferOnWwwさんの回答です。 質問者さんは「メールが送れる場合」があると言われています。 ですので、100%送れない現象とは異なるかと思いますがどうでしょうか?
退会済みユーザー

退会済みユーザー

2019/09/12 06:21

そうですね、VB.NET アプリの SmtpClient の相手の SMTP サーバーは常に同じで、それと相性の問題で認証ができないなら 100% ダメですね。 質問には、 > メールサーバーはlinuxにsendmailとpostfixをインストールして と書いてありますが、VB.NET アプリの SmtpClient の相手の SMTP サーバーは上記のもので常に同じで、そこまでは OK ということなのでしょうか? そこは読めなかったです。
YAmaGNZ

2019/09/12 06:25

質問の頭に 「VB.netで作成したプログラムから送られるメールが一部相手(gmail.comやicloud.com宛)に届かない現象が起きました。」 とあります。 ですので、gmail.comやicloud.com宛以外のメールは届いていることになります。 このことより、SMTPサーバーへの認証は出来ているかと
退会済みユーザー

退会済みユーザー

2019/09/12 09:30 編集

質問の情報からは、「VB.NET アプリの SmtpClient の相手の SMTP サーバーは常に同じで、VB.NET アプリと SMTP サーバーの間は間違いなく OK 」ということまでは自分は読めなかったということです。 実際の状況が 100% 分かっている訳ではない第三者がそこのところを議論してもあまり意味はなさそうです。質問者さんの方で実際の状況・環境から、確認する必要があると判断するのか、間違いなく OK だからそこは調べる必要はないと判断するのか、決めてもらえばいいと思います。
guest

0

投稿2019/09/12 04:55

YAmaGNZ

総合スコア10222

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問