オフの問題が発生していますが、何かが私の側で正しく設定されていないのか、それとも新しい NetworkCredential の署名に大きな問題があるのか わかりません。
最初に少し歴史を説明します。smtp 経由で電子メールを送信する .NET Framework 2 で作成したアプリケーションがあります。電子メールを送信するには、Active Directory 資格情報を使用してサーバーで認証します。私は単にそれを以下のようにセットアップしました:
smtp.Credentials = New Net.NetworkCredential(domain & "\" & username, password)
これは、.NET フレームワーク 4 で実行するようにアプリケーションを更新するまで問題なく機能していました。そこで、「メールボックスが利用できません。サーバーの応答は 5.7.1 でした。クライアントには、この送信者として送信する権限がありません。」
調べてみると、何らかの理由でこれが .NET Framework 4 で正しく機能せず、ドメインを指定したオーバーロードを使用することがわかりました。
私が最初に試した:
smtp.Credentials = New Net.NetworkCredential(username, password, domain)
すべての情報が正しいにもかかわらず、同じエラーが発生しました。私の同僚は、別のアプリケーションで同じ問題を抱えていましたが、幸運または間違いで次のことがわかりました。
smtp.Credentials = New Net.NetworkCredential(username, domain, password)
正常に機能し、メールを認証して送信します。上記の署名はすべてのドキュメントに反するため、調査して次のことを発見しました。
Dim NetCred As NetworkCredential = New NetworkCredential()
With NetCred
.Username = username
.Domain = domain
.Password = password
End With
上記は以前と同じエラーメッセージで失敗しました (5.7.1)
Dim NetCred As NetworkCredential = New NetworkCredential()
With NetCred
.Username = username
.Domain = password
.Password = domain
End With
以上でメールの送信と認証に成功しました。
これが起こっている理由を誰でも思いつくことができますか?すべての.netフレームワークバージョンがインストールされ、最新の状態で、Visual Studio 2010の最新バージョンを実行しています。
助けてくれてありがとう。