0

VB.Net で電子メールを送信するためのコード スニペットを使用する ローカル マシンから電子メールを正常に送信しましたが、サーバーにアップロードすると、電子メールが失敗したというメッセージが表示されます。SMTP を実行している国内の中継サーバーがあり、両方のインスタンスでそのサーバーを指しています。2 台のマシンの唯一の相違点は、サーバーが SMTP を実行していないことです。SMTP を実行している電子メールを送信するためにリレー サーバーを使用している場合、サーバー上で SMTP を実行する必要がありますか?

 Dim message As New MailMessage("DoNotReply@faa.gov", My.Settings.NotifyList, "Starting FalconCMSOffloader @ " & My.Settings.FacID & " - " & Now, "NM")
        Dim emailClient As New SmtpClient(My.Settings.EmailServerAddress)
        emailClient.Send(message)
4

2 に答える 2

3

VB.Net コードは基本的な TCP/IP を使用してリレー サーバーと直接通信する必要があるため、SMTP をローカルで実行する必要はありません。

エラー メッセージを確認すると便利です。サーバーがリレー サーバーのポート 25 にアクセスできない可能性があります (たとえば、ファイアウォールの構成が原因で)。次のようにコマンドライン (サーバー上) から telnet を起動することで、この接続をある程度テストできることに注意してください。

telnet RelayServerAddress 25

また、ドメイン アカウントでマシン上でコードをローカルに実行すると、リレー サーバーで何らかの認証が発生する可能性があります。ここでいくつかの大きな仮定を立てています)。

于 2008-12-16T13:30:53.107 に答える
1

中継サーバーを指定する場合、サーバー上に smtp サーバーは必要ありません。My.Settings.EmailServerAddress が実際にリレー サーバーを指していることを再確認してください。

于 2008-12-16T13:27:19.013 に答える