我正在使用 webDAV 和 .Net 2.0 在运行 Exchange Server 2003 的服务器上收集有关电子邮件帐户的信息。我可以访问如下所示的 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。我注意到的另一件事是 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 文件的内容:
<!--版权所有 (c) 2000-2003 Microsoft Corporation。保留所有权利。--> <!--CURRENT FILE== "NON-IE5" "NON-WIN32" 框架集 --> <!--当前模板 == 框架集.00000000 --> <HTML> <头部> <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/"> </头> <SCRIPT 语言="JavaScript"> var g_iNewWindowWidth = 700; 变量 g_iNewWindowHeight = 500; var g_fWarnOnLogOff=false; 函数 WarnOnLogOff() { 如果(g_fWarnOnLogOff) alert("为帮助保护您的邮箱免受未经授权的访问,请在使用完 Outlook Web Access 后关闭所有浏览器窗口。"); } </脚本> <FRAMESET OnUnload="WarnOnLogOff()" framespacing="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="自动"> <框架> <BODY><P>此页面使用框架,但您的浏览器不支持。</P></BODY> </框架> </帧集> </HTML>
未经授权的访问是怎么回事?