从服务收到的响应不包含有效的 XML

The response received from the service didn't contain valid XML

提问人:Eddy 提问时间:11/6/2023 最后编辑:Brian Tompsett - 汤莱恩Eddy 更新时间:11/7/2023 访问量:56

问:

我们正在尝试设置一个方案,即在 Windows Server 2019 IIS 上运行的应用程序使用指定的以下电子邮件地址、用户名和密码登录,并自动将邮件从 Office 365 发送回客户端。

简单来说,应用程序必须打开 Web URL,使用给定的凭据登录并发送邮件。

我已经浏览了很多表单,并尝试快速更改 URL 几次,因为有些表单不包含在这里实际使用的内容。

因此,需要发生的事情是,应用程序需要按照前面的表格在URL(https://outlook.office365.com/EWS/Exchange.asmx)上联系Office 365,但随后我们收到以下错误:

“您遇到的错误消息,”(401) 未经授权”

我们已经允许 365 上的 noreply/order 电子邮件地址并仔细检查用户名和密码,但错误消息仍然存在,我们还确保 2 管理中心上的 365 因素身份验证已关闭,以便发送此邮箱并且委派正确。.我们也使用了 https://autodiscover.outlook.com/EWS/Exchange.asmx 因为在 365 的管理门户中,似乎一切都设置为自动发现,但没有成功。

然后,我们根据其他表单将URL更改为“https://outlook.office.com/mail/ourdomain.co.za/EWS/Exchange.asmx”,您会获得Office 365登录页面,该页面似乎是正确的URL,但现在我们收到此错误:

“从服务收到的响应不包含有效的 XML”

我们没有运行混合解决方案,只想使用应用程序通过 Office 365 发送,我们没有现场交换服务器。防火墙规则也进行了检查,似乎找不到任何阻止此请求的内容。

此外,我不确定是否需要在我们的 Windows Server IIS 端做任何事情,我唯一尝试的就是在 IIS 请求过滤中的站点下添加并允许 URL,这也没有任何区别。

请参阅当前的应用程序代码。****中的区域,我们填写了实际的详细信息。

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);

            //Set your Exchange server URL and credentials.
            try
            {
                // Set the correct URL for Office 365.
                service.Url = new  Uri("https://outlook.office.com/mail/ourdomain.co.za/EWS/Exchange.asmx");
            }
            catch (Exception ex)
            {
                return BadRequest("WebService Uri: " + ex.Message);
            }


            try
            {
                service.Credentials = new WebCredentials("****[email protected]****",     "****userpassword****");
            }
            catch (Exception ex)
            {
                return BadRequest("Credentials: " + ex.Message);
            }

            try
            {
                EmailMessage email = new EmailMessage(service);
                email.Subject = "Your Visits for today";
                email.Body = new MessageBody("The email is working");
                email.ToRecipients.Add("****[email protected]****");
                email.Send();

                return Ok("Email sent");
            }
            catch (Exception ex)
            {
                return BadRequest("Message Error: " + ex.Message);
            }
        }

请任何帮助或协助将有很大帮助,因为我们目前处于这一点,我们不知道要进一步检查什么。

XML 电子邮件 IIS Office365

评论

0赞 jdweng 11/6/2023
大多数服务器 (Office 365) 已从 Windows 凭据移至 OAUTH2,因为 Windows、MAC 和 Linux 支持 OAUTH2。OAUTH2 您发送两个请求。首先从服务器获取令牌/cookie,然后执行查询。在谷歌上搜索“Office 365 身份验证”。
0赞 YurongDai 11/14/2023
为 ExchangeService 启用日志记录,以获取有关请求和响应的更多详细信息。这有助于识别通信中的任何特定问题。在进行服务调用之前添加以下行: 然后,检查跟踪日志以获取更多信息。service.TraceEnabled = true; service.TraceFlags = TraceFlags.All;

答: 暂无答案