0

単一のコンソール アプリケーションを作成しました (サイト コードの一部にすぎませんが、別の場所でも動作する必要があり、サイト内と同じエラー結果になります) (C#):

MailMessage message = new MailMessage("login@ourDomenInPunycode", "toMail")
{
    Subject = "Hello",
    Body = "Hello world"
};

SmtpClient client = new SmtpClient();
client.Host = "ourIP";
client.Credentials = new System.Net.NetworkCredential("login@ourDomenInPunycode", "ourPassword");
client.Port = 25;
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(message); 

では、電子メールを送信することは些細なことではないでしょうか? しかし、ローカル マシンからメール サーバーを介して (このコンソール アプリケーションを実行しているだけで) メールを送信すると、次の例外が表示されます。

System.Net.Mail.SmtpFailedRecipientException: メールボックスを利用できません。サーバーの応答は次のとおりでした: 5.7.1 Relaying to denied (authentication required)

「login@ourDomenInPunycode」データを自分のメールボックス (gmail などでも構いません) に変更すると、すべて正常に動作します。「toMail」アドレスにも依存しません。

では、メール サーバーの何が問題になっているのでしょうか。特別な設定はありますか?別の Windows Server 2008 内で仮想化された Windows Server 2008 と、仮想 Windows Server 2008 のメール サーバーとして Kerio Connect 7 を使用しています。

SmtpClient の設定についてインターネットで読んだすべての記事には、これらの (上記の) 些細な設定とコードしかなく、特別なことは何もありません。

アップデート

上記のテキストでいくつかの修正を行いました。

これは、メールサーバーの仮想 PC から起動したコンソールアプリケーション (上記の「ourIP」に関連する「mail.ourDomen.local」) からメールを送信しようとしたときのメールサーバーのログの一部です。

Task 215 handler BEGIN
Task 215 handler starting
SMTP server session begin; client connected from mail.ourDomen.local:49399
Sent SMTP greeting to mail.ourDomen.local:49399
Command EHLO OurMailServer
Sent reply to EHLO: 250 mail.ourDomenInPunycode ...
Command MAIL FROM:<login@ourDomenInPunycode>
Sent reply to MAIL: 250 2.1.0 Sender <login@ourDomenInPunycode> ok
Command RCPT TO:<toMail>
Sent reply to RCPT: 550 5.7.1 Relaying to <toMail> denied
Connection to SMTP server mail.ourDomen.local lost: connection closed by remote host.
SMTP server session end
Task 215 handler END

「RCPT に返信を送信しました: 550 5.7.1 中継が拒否されました」 - なぜこれが起こったのですか?

4

4 に答える 4

1

さて、この説明を使用します

https://kb.kerio.com/article/550-571-relaying-to-email%40addresscom-denied-authentication-required-411.html .

この設定については知っていますが、仮想マシンと絡み合っています。Web サーバー用の仮想マシンと、メール サーバー用の仮想マシンがあります。Web サーバではなく、Kerio Connect でのみメール サーバ仮想マシンに対して権限が設定されました。Web サーバーの仮想マシンに許可を追加しただけで、メールは正常に送信されます。

そして、「ourIP」

SmtpClient client = new SmtpClient();
client.Host = "ourIP";

メール サーバーの仮想マシンの IP です。SmtpClient オブジェクトに Web サーバー仮想マシンの IP が設定されていません。

于 2012-05-18T06:02:11.167 に答える
0

client.Host および client.DeliveryMethod プロパティを設定せずにコードを試してください。

于 2012-05-16T11:08:30.763 に答える
0

示唆されているように、ポート 25 を介した「中継」を許可するようにメール サーバーを構成する必要があります。探しているのは「中継」設定/構成です。

「リレー」の背後にあるアイデア/目的は、サーバーがスパムの送信に (ab) 使用されるのを防ぐことです。

于 2012-05-16T11:05:12.510 に答える