私はこのエラーに多くの記事があります。しかし、ほとんどの場合IISを処理します。リレーを無効にして、自分のコードを認証されたクライアントとして使用するにはどうすればよいですか?
メールボックスが利用できません。 5.7.1リレーできませんでした
コンソールにコードを移植しましたが、まだこのエラーが表示されています。これは、コンソールアプリケーションでも、ISSをリレーや何かとして使用しているように見えますか?
私はExchange管理者と話しましたが、中継のためにメールサーバーを開くことはできません。だから私は私のC#のコードをOutlookのように正規の認証されたクライアントとして電子メールを送信するようにしたいと思います。
私のコードは自分のドメイン内の誰かに送信していますが、受信者がドメイン外にいる場合は表示されません。
ドメイン外の人に電子メールを送信できるように、リレーを無効にして自分のコードを認証済みクライアントとして使用するにはどうすればよいですか?
CODE:
static void Main(string[] args)
{
Console.WriteLine("Sending Mail...");
try
{
SmtpClient _SMTPServer = new SmtpClient("companymailserver", 587);
_SMTPServer.Credentials = new System.Net.NetworkCredential("myusername", "mypassword");
MailMessage _mailMessage = new MailMessage();
_mailMessage.To.Add(new MailAddress("[email protected]"));
_mailMessage.From = new MailAddress("[email protected]");
_mailMessage.IsBodyHtml = false;
_mailMessage.Subject = "This is a test";
_mailMessage.Body = "This is the body";
_SMTPServer.Send(_mailMessage);
}
catch (Exception err)
{
Console.WriteLine("error: " + err.Message);
}
Console.WriteLine("Press any key to continue...");
Console.Read();
}
UPDATE#1
奇妙なことは、私は同じ 'リレーすることができません' というエラーを取得置く何の資格情報に関係noです。あたかもSmtpClient設定をリレーして無視するように設定しているかのように。
にUseDefaultCredentialsを設定してください、私はあなたがこれを許可するのが賢明コードを何かできることはないと思います。 – kd7
@ kd7通常のSmtpClientとして中継しないでメールを送信できないのはなぜですか?すべてのクラスは 'SmtpClient'と呼ばれています。サーバーは、認証されたクライアントが誰にでも電子メールを送信できるようにします。 – capdragon
これは何とか可能です。ほとんどのメールサーバーは、電子メールがシステム上のメールボックスを持つユーザーからのもので、ユーザーが認証されている限り、中継を許可します。それ以外の場合、ユーザーは他の企業に電子メールを送信することはできません。 – CodeThug