web-dev-qa-db-ja.com

コードからメールを送信中に「5.7.1クライアントに権限がありません」エラー

電子メールを送信しようとする非常に基本的なプログラムがありますが、

メールボックスを使用できません。サーバーの応答は次のとおりです:5.7.1クライアントには、この送信者として送信する権限がありません

これが私のプログラムです

static void Main(string[] args)
{
    SmtpClient client = new SmtpClient("Server", 25);
    client.UseDefaultCredentials = false;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.Credentials = new NetworkCredential("UserName", "Password");
    client.Send(new MailMessage("[email protected]","Recipient"));
}

同じデータを使用してSMTPテストツール3.0を実行すると、資格情報が機能することはわかっています。

enter image description here

これは、Exchangeサーバーで私のIP用に設定された受信コネクタのスクリーンショットです。

enter image description here

enter image description here

誰かが私のコードでこのエラーを引き起こしていると思われるアイデアを持っていますが、単純なSMTPテストツール内ではありませんか?どこかにある種の認証オプションがないのですか?私はすべての情報が両方の場所で正確で同一であることを4倍にチェックしましたが、それはツールでは機能しますがコードでは機能しません。

13
Kevin DiTraglia

問題が見つかりました。認証されたユーザーの[すべての送信者を受け入れる]チェックボックスをオンにする必要がありました。

enter image description here

詳細はこちら: http://technet.Microsoft.com/en-us/library/aa997170(EXCHG.140).aspx

10
Kevin DiTraglia

このスレッドはかなり古いですが、同じ問題が発生し、長い間頭を悩ませてきました。私の場合、メールサーバーは「外部」送信者を受け入れませんでした。たとえば、@ sample.comドメインにいる場合、「[email protected]」からメールを送信できない可能性があります。これは、サーバーがこれを拒否するためです。 5.7.1エラー。したがって、ここでは2つのことが重要です。1)サーバーへの接続に使用される正しい資格情報。 2)サーバーが別のドメインに属する送信者からのメールを拒否できるため、「From」フィールドの値。つまり、@ sample.comドメインにいる場合は、これに加えて新しいMailMessage {From = "[email protected]"}を追加してみてください。

3
aleor

私も同じ問題を抱えていました。別のコンソールアプリケーションでSMTP設定をテストしたところ、問題なく動作しました。いくつかグーグルした後、私は自分の問題がfromアドレスを2回指定したという事実であることに気づきました。

<smtp deliveryMethod="Network" from="[email protected]">

そして私のコードでも:

mail.From = new MailAddress("[email protected]");

コードからfromアドレスを削除することで問題は解決しました。

0
Viqas