Outlook 自动发现 SMTP 身份验证

Posted

技术标签:

【中文标题】Outlook 自动发现 SMTP 身份验证【英文标题】:Outlook Autodiscover SMTP authentication 【发布时间】:2016-04-10 21:33:06 【问题描述】:

问题

我正在尝试为我网站的用户创建一个自动发现脚本。目前我正在创建到我的邮件服务器的工作连接,但是我的邮件服务器需要 SMTP 身份验证。我目前正在发送:

  <AuthRequired>on</AuthRequired>

在完整的 XML 文件中启用 SMTP 身份验证。这将启用“我的传出服务器 (SMTP) 需要身份验证”旁边的详细信息中的复选标记。带有“使用与我的接收邮件服务器相同的设置”(首选)或“使用登录”两个选项的项目符号列表没有选择任何选项。

我的尝试

我已尝试添加 POP3 信息并将以下属性放入我的 SMTP 部分:

<UsePOPAuth>on</UsePOPAuth>

然而这并没有奏效。为了创建 XML 文件,我使用了以下 URL:https://technet.microsoft.com/en-us/library/cc511507.aspx

我当前的 XML 文档

<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
<Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
<Account>
<AccountType>email</AccountType>
<Action>settings</Action>
<Protocol>
<Type>IMAP</Type>
<Server>mail.test.nl</Server>
<Port>143</Port>
<DomainRequired>on</DomainRequired>
<LoginName>me@test.nl</LoginName>
<SPA>off</SPA>
<SSL>off</SSL>
<AuthRequired>on</AuthRequired>
</Protocol>
<Protocol>
<Type>SMTP</Type>
<Server>mail.test.nl</Server>
<Port>587</Port>
<DomainRequired>on</DomainRequired>
<LoginName>me@test.nl</LoginName>
<SPA>off</SPA>
<SSL>off</SSL>
<AuthRequired>on</AuthRequired>
<SMTPLast>on</SMTPLast>
</Protocol>
</Account>
</Response>
</Autodiscover>

【问题讨论】:

您是否尝试在提供 UsePOPAuth 时从 SMTP 协议中省略 DomainRequired 和 LoginName 【参考方案1】:

我在 TechNet 上发现了一个非常有用的 article,它基本上解释了为什么会发生这种情况。据我了解,指定 SMTPLast 属性会使 Outlook 尝试在 SMTP 之前登录到 POP/IMAP,而无需实际验证 SMTP(某些服务器,例如我学校的服务器仅以这种方式工作)。

我重现了与该配置相同的问题,但一旦我删除它,它就像一个魅力。

我注意到没有很多关于 Autodiscover 的有用文档,也就是 POX autodiscover,所以这里是对我有用的 xml 模板:

<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
    <Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
        <User>
            <DisplayName>First Last</DisplayName>
        </User>
        <Account>
            <AccountType>email</AccountType>
            <Action>settings</Action>
            <Protocol>
                <Type>IMAP</Type>
                <Server>mail.example.com</Server>
                <Port>993</Port>
                <AuthRequired>on</AuthRequired>
                <LoginName>email@example.com</LoginName>
                <SPA>off</SPA>
                <SSL>on</SSL>
            </Protocol>
            <Protocol>
                <Type>SMTP</Type>
                <Server>mail.example.com</Server>
                <Port>587</Port>
                <AuthRequired>on</AuthRequired>
                <LoginName>email@example.com</LoginName>
                <SPA>off</SPA>
                <Encryption>TLS</Encryption>
                <UsePOPAuth>on</UsePOPAuth>
            </Protocol>
        </Account>
    </Response>
</Autodiscover>

【讨论】:

正确答案+1

以上是关于Outlook 自动发现 SMTP 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

在用OUTLOOK和FOXMAIL发信时为啥要加上SMTP身份验证?求解答

使用带有 Laravel 的 Outlook / Office365 发送电子邮件 - 无法在 SMTP 服务器上进行身份验证

使用配置文件的 MailSettings 进行 SMTP 身份验证

Foxmail发不出去邮件 求解释

通过 Outlook 的 smtp 服务器发送电子邮件

SMTP 身份验证用户名是啥