我正在使用 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>
未经授权的访问是怎么回事?