0

オフの問題が発生していますが、何かが私の側で正しく設定されていないのか、それとも新しい 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の最新バージョンを実行しています。

助けてくれてありがとう。

4

0 に答える 0