Delphi 如何在不预先知道Outlookversion(2010201302016等)的情况下从Serviceapplication登录
我正在编写一个服务应用程序,该应用程序应该监视一个或多个ExchangeMailbox中的传入邮件,以便对这些邮件执行一些操作。Delphi 如何在不预先知道Outlookversion(2010201302016等)的情况下从Serviceapplication登录,delphi,outlook-redemption,Delphi,Outlook Redemption,我正在编写一个服务应用程序,该应用程序应该监视一个或多个ExchangeMailbox中的传入邮件,以便对这些邮件执行一些操作。 该服务将在不同的环境中运行,这意味着我需要支持Outlook 2010至2019 如何从服务应用程序可靠地登录到会话,而不管其版本是什么 我有以下适用于Outlook 2010但不适用于2016的代码。 ExchangeServer与此相同,使用的是2010版 mailboxstomonitor do中的MailboxName的 开始 会话:=RedemptionLo
该服务将在不同的环境中运行,这意味着我需要支持Outlook 2010至2019 如何从服务应用程序可靠地登录到会话,而不管其版本是什么 我有以下适用于Outlook 2010但不适用于2016的代码。 ExchangeServer与此相同,使用的是2010版 mailboxstomonitor do中的MailboxName的
开始
会话:=RedemptionLoader.new\r会话;
Session.LogonExchangeMailbox(MailboxName,'ExchangeServerName');//适用于2010年,但不适用于2016年
DefaultStore:=Session.Stores.DefaultStore;
如果[skPrimaryExchangeMailbox,skDelegateExchangeMailbox]中有(LDefaultStore.StoreKind),则
开始
MailboxStore:=TRDOExchangeMailBoxStore.Create(Self);
尝试
ConnectTo(默认存储为IRDOExchangeMailboxStore);
MailboxStore.OnNewMail:=RDOStoreOnNewMail;
除了
LMailboxStore。免费;
提高;
结束;
添加(会话);
结束;
结束;
在安装Outlook 2016时引发MAPI_E_未知_标志错误会话。LogonExchangeMailbox
在ServiceApplication中不起作用Session.Logon
抛出:Session.LogonHostedExchangeMailbox
- EOleSysError:预期HTTP_状态_重定向,收到403
- EIdDnsResolverError:DNS服务器报告查询名称错误
- ehttperor:HTTP错误401来自
https://autodiscover.domain.com/autodiscover/autodiscover.xml
- EOleSysError:GetAutodiscoverUrlFromDns错误:使用xx.xx.xx.xx的DNS查找错误:DNS服务器报告查询名称错误
- EOleSysError:GetAutoDiscoveryForMailAddress:此地址的AD中没有自动发现服务器
LogonExchangeMailbox
以旧RPC模式连接到服务器,Exchange server的最新版本不再支持旧RPC模式
您需要为Exchange 2013/2016/2019使用
LogonHostedExchangeMailbox
-它通过HTTP或MAPI通过HTTP模式在PRC中连接。要使LogonHostedExchangeMailbox正常工作,您至少需要有Outlook 2010 SP2、2013 SP1或2016/2019版本。如果您想要独立于Outlook的工作设置,请使用EWS API,以下是错误401,表示凭据错误。你认为第一个和第二个参数是什么?很好,我尝试了Session.LogonHostedExchangeMailbox('me@company.com', 'me@company.com', '');
这不起作用,但使用'Domain\Username'作为Username
参数确实起作用,所以我需要使用NTLM身份验证。是否有一种方法可以事先检查需要哪种身份验证方法,或者如果我不知道使用了什么方法,我只需要尝试一下,看看什么方法有效?在当前使用Exchange 2010的环境中,这是否意味着LogonExchangeMailbox
是正确的方法?这在使用Outlook 2010的计算机上有效,但在使用Outlook 2016LogonExchangeMailbox的计算机上无效。邮箱仍应工作。。。LogonHostedExchangeMailbox是否适用于您的Exchange 2010服务器?LogonHostedExchangeMailbox
不适用于我的Exchange 2010服务器,请查看编辑后的问题以了解我收到的错误。