设为首页 收藏本站
查看: 982|回复: 0

[经验分享] 读取Exchange的用户未读邮件数3种办法

[复制链接]

尚未签到

发表于 2015-9-11 10:20:41 | 显示全部楼层 |阅读模式
  1、开通IMAP服务,采用IMAP方法读取,需要提供用户和密码
IMAP_Client imap = new IMAP_Client();
//链接
imap.Connect(server, port, ssl);
//账户需要加上后缀名称,组合成"username@bzy.com"格式
//
account = string.Format("{0}{1}", account,ExchangeManageConfig.ExchangeDomail);
//验证账户
imap.Authenticate(account, password);

  2、采用EWS读取邮件,默认取当前用户的登录认证方式(或提供用户和密码)
//
// TODO: 在此处添加构造函数逻辑
//实例化对象
_esb = new ExchangeServiceBinding();
//授权-默认权限
ICredentials creds = System.Net.CredentialCache.DefaultNetworkCredentials;
_esb.Credentials = creds;
/设置webservice的URL
_esb.Url = ExchangeManageConfig.ExchangeWebUrl;

  3、采用EWS API方式。授权一个账户有模拟其他用户的权限
  
1.安装 Exchange Web Services Managed API,当前版本1.1           
2.授权一个账户有模拟其他用户的权限,打开Exchange 2010 服务器在命令行中输入
New-ManagementRoleAssignment -Name:impersonationAssignmentName -Role:ApplicationImpersonation -User:serviceAccount serviceAccount:就是我们要模拟其他人的账户protected void Page_Load(object sender, EventArgs e)
{
EwsConfig config = new EwsConfig();
config.ExchangeVersion=ExchangeVersion.Exchange2010_SP1;
config.EWSServiceUrl="https://********/EWS/exchange.asmx";
config.ExchangeAdministrator = "<UserName>";
config.ExchangeAdministratorPassword = "<PWD>";
config.DomainName = "<domainName>";
config.OtherUserName = "<otherUserName>";
//下面这句屏蔽服务器证书验证,防止页面报“根据验证过程,远程证书无效”的错误                                
ServicePointManager.ServerCertificateValidationCallback =
delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };
ExchangeService service = new ExchangeService(config.ExchangeVersion);
service.Credentials = new NetworkCredential(config.ExchangeAdministrator, config.ExchangeAdministratorPassword, config.DomainName);      
service.Url = new Uri(config.EWSServiceUrl);
//前提打开Exchange 2010服务器在命令行中输入:            
//New-ManagementRoleAssignment -Name:impersonationAssignmentName -Role:ApplicationImpersonation -User:<UserName>
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.PrincipalName, config.OtherUserName);
int unRead=Folder.Bind(service, WellKnownFolderName.Inbox).UnreadCount;
HttpContext.Current.Response.Write(config.OtherUserName+"未读邮件数:"+unRead);
}
public struct EwsConfig
{
public ExchangeVersion ExchangeVersion;
public string EWSServiceUrl;
public string ExchangeAdministrator;
public string ExchangeAdministratorPassword;
public string DomainName;
public string OtherUserName;
}

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-112217-1-1.html 上篇帖子: Outlook 2010 “加载项执行错误。调用“Microsoft Exchange 加载项”加载项时,在“IDTExtensibility2”接口回调“On 下篇帖子: POJ 1860 Currency Exchange (Bellman ford)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表