イントラネット Web ページに次の vb.net コードがあります。
Sub SendEmail()
MMsg = New MailMessage
MMsg.BodyFormat = MailFormat.Html
MMsg.From = "intranet@internal_company_name.com"
MMsg.To = "someone@internal_company_name.com"
MMsg.Subject = "subject goes here"
MMsg.Body = "body goes here"
SmtpMail.SmtpServer = "smpt server goes here"
SmtpMail.Send(MMsg)
End Sub
これは、MMsg.To
に社内の電子メール アドレスのみが含まれている限り、つまりMMsg.To = "someone@internal_company_name.com;someone_else@internal_company_name.com"
. 外部の会社の電子メールを MMsg.To に追加しようとすると、つまりMMsg.To = "someone@internal_company_name.com;someone@extermal_company_name.com"
、イントラネット Web ページでフォームを送信するとすぐに、次のエラー メッセージが表示されます。
サーバーが 1 つ以上の受信者アドレスを拒否しました。サーバーの応答は次のとおりです: 550 5.7.1 someone@external_company.com を中継できません
ただし、内部メールは正常に受信され、すべてがフォームで処理されます。外部企業が受信しない外部メールと、ユーザーが送信ボタンを押したときにユーザー画面に表示されるエラーだけです。
これについて検索したところ、ローカルホストの IP アドレスとイントラネット サーバーの IP アドレスをイントラネット上の iis に追加することを提案する解決策がありました。私はこれを行いましたが、違いはありませんでした。LinuxサーバーでApacheに変更を加えるときにApacheを再起動する必要があるように、それを行った後にiisを再起動する必要があるかどうかわかりませんか?
それとも、実際のイントラネット サーバーとは別の実際の smtp サーバーがあり、イントラネット サーバーの iis にある仮想 smtp サーバーに IP アドレスを追加しようとしているからですか?
それとも全く違うものですか?