在CS文件中加入using Microsoft.Office.Interop.Outlook;
#region
对OUTLOOK的操作
public void SearchForEmail( string PathName)
{
string contactMessage = string .Empty;
Microsoft.Office.Interop.Outlook.Application myOlApp = new Microsoft.Office.Interop.Outlook. ApplicationClass();
Microsoft.Office.Interop.Outlook.NameSpace myNameSpace;
Microsoft.Office.Interop.Outlook.MAPIFolder myFloder;
myNameSpace = myOlApp.GetNamespace( " MAPI " ); //得到MAPI的Session
myFloder = myNameSpace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);//获取默认的邮箱信息
foreach (ContactItem foundContact in myFloder.Items)//遍历Outlook
{
if (foundContact.Email1Address.Contains(PathName))//判断联系人中的Email是否有以PathName的信息内容
{
contactMessage = contactMessage + " New contact "
+ foundContact.FirstName + " " + foundContact.LastName
+ " Email Address is " + foundContact.Email1Address +
" . \n " ; //输出Outlook信息
}
}
if ((contactMessage.Length) == 0 )
{
Response.Write( " No Found " );
}
Response.Write(contactMessage);
}
#endregion
public void SearchForEmail( string PathName)
{
string contactMessage = string .Empty;
Microsoft.Office.Interop.Outlook.Application myOlApp = new Microsoft.Office.Interop.Outlook. ApplicationClass();
'得到实例
Microsoft.Office.Interop.Outlook.NameSpace myNameSpace;
Microsoft.Office.Interop.Outlook.MAPIFolder myFloder;
myNameSpace = myOlApp.GetNamespace( " MAPI " ); //得到MAPI的Session
myFloder = myNameSpace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);//获取默认的邮箱信息
foreach (ContactItem foundContact in myFloder.Items)//遍历Outlook
{
if (foundContact.Email1Address.Contains(PathName))//判断联系人中的Email是否有以PathName的信息内容
{
contactMessage = contactMessage + " New contact "
+ foundContact.FirstName + " " + foundContact.LastName
+ " Email Address is " + foundContact.Email1Address +
" . \n " ; //输出Outlook信息
}
}
if ((contactMessage.Length) == 0 )
{
Response.Write( " No Found " );
}
Response.Write(contactMessage);
}
#endregion
在Page_Load中调用SearchForEmail
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
SearchForEmail( " com " ); // 查询所有以COM结尾的联系人EMail
}
}
现出现严重的问题.在VS下调试可以成功.在IIS下调试会出现如下错误
检索 COM 类工厂中 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
请各位好心在侠帮帮忙\解决下.谢谢