WebDAVと.Net2.0を使用して、ExchangeServer2003を実行しているサーバー上の電子メールアカウントに関する情報を収集しています。次のようなURIにアクセスできます。
http://my.mailserver.com/exchange/user/Inbox/someImportantEmail.EML
私は次のようにファイルをコピーしようとしました:
Dim uri As New Uri(uriNode.InnerText)
If uri.IsFile() Then
Dim fn As String = Path.GetFileName(uri.LocalPath)
System.IO.File.Copy(uri.LocalPath, "c:\" & fn)
End If
ただし、uri.IsFile()は常にfalseを返します。私が注意したもう1つのことは、uri.Localパスは
/exchange/user/Inbox/someImportantEmail.EML
私は私の問題のこの部分ですか?.emlファイルをExchangeサーバーからローカルハードドライブにコピーするにはどうすればよいですか?
編集:
私はAnthonyWJonesの提案を実装しました
Dim cred As New System.Net.CredentialCache
cred.Add(uri, "BASIC", New System.Net.NetworkCredential(_username, _password, _domain))
Dim wc As New WebClient()
wc.Credentials = cred
wc.DownloadFile(uri, "c:\testEML.EML")
これにより、cドライブにtestEML.EMLファイルが作成されますが、EMLファイルの内容は次のとおりです。
<!-Copyright(c)2000-2003MicrosoftCorporation。無断複写・転載を禁じます。--> <!-CURRENT FILE =="NON-IE5""NON-WIN32"フレームセット-> <!-CURRENT TEMPLATE == frameset.00000000-> <HTML> <HEAD> <META HTTP-EQUIV = "Content-Type" CONTENT = "text / html; CHARSET = utf-8"> <TITLE> Microsoft Outlook Web Access </ TITLE> <BASE href = "http://my.mailserver.com/exchange/user/"> </ HEAD> <SCRIPT language = "JavaScript"> var g_iNewWindowWidth = 700; var g_iNewWindowHeight = 500; var g_fWarnOnLogOff = false; 関数WarnOnLogOff() {{ if(g_fWarnOnLogOff) alert( "メールボックスを不正アクセスから保護するには、Outlook Web Accessの使用が終了したら、すべてのブラウザウィンドウを閉じてください。"); } </ SCRIPT> <FRAMESET OnUnload = "WarnOnLogOff()" framepacing = "3" cols = "190、*"> <FRAME bordercolor = "#3D5FA3" name = "navbar" title = "Navigation" src = "Inbox /?Cmd = navbar" marginheight = "0" marginwidth = "0" scrolling = "auto" border = "1"> <FRAME name = "viewer" title = "Contents" src = "Inbox / FW:.EML?Cmd = open" scrolling = "自動"> <NOFRAMES> <BODY> <P>このページはフレームを使用していますが、ブラウザはフレームをサポートしていません。</ P> </ BODY> </NOFRAMES> </ FRAMESET> </ HTML>
不正アクセスとは何ですか?