我在一家本地 ISP、Web 和电子邮件托管提供商工作。我能够分别为 Thunderbird、Outlook 和 IOS 设置 autoconfig/autodiscover 和 .mobileconfig。这涵盖了我们大部分用户群,除了心爱的 Android。它经过测试。它有效。我们经常使用它。
我们如何为 Android 设置类似的东西?到目前为止,唯一的选择似乎是要求用户从 Play Store 安装第三方应用程序,例如 Outlook。
必须有一种方法可以使此功能在内置的 Android 邮件应用程序上运行。
具体来说,我们的设置如下:
IMAP:端口 993、SSL、纯文本密码(默认受 SSL 保护) SMTP:端口 465、SSL、纯文本密码(默认受 SSL 保护)
两个服务器名称相同,但与电子邮件地址中的域不同。
用户名是完整的电子邮件地址。
我们拥有许多域名,因此为每个域名设置特定的 DNS 需要耗费大量的人力。
我们所划定的方案运行良好,并且在 DNS 方面是通用的,因此不需要添加或更改 DNS 记录,这意味着我们可以将其作为我们服务的一部分提供,并且它将覆盖我们所有的客户。
现在 Android 上也一定有类似的东西了。
有没有办法仅根据电子邮件地址和密码自动配置 Android 邮件应用程序的设置?
对此仍没有答案。
当 Android Mail 尝试自动检查设置时,有人知道它正在检查什么吗?
答案1
我把autoconfig
(Thunderbird/Mozilla 标准) + autodiscover
(Microsoft 标准) 和 RFC 6186 写成了 Ansible 的“角色” - 但用大量文字来解释发生了什么。摘要:首先设置 RFC 6186 以查看是否足够,如果不够,则设置其他。
以下是该角色的解释摘录;请参阅Ansible 角色欲了解更多信息,以及那里的其余文本 - 即使您不了解 Ansible(尤其是参见tasks
和templates
目录),它也应该是可以理解的;进一步你会发现如何测试autoconfig
/autodiscover
设置:
RFC 6186
如果你不知道RFC 6186,我的建议是:在进行自动发现/自动配置之前,先为您的域设置 RFC 6186 记录:这是通过 DNSSRV
记录配置自动发现/自动配置的更简单、更现代的方式;在使用此角色之前先进行设置,这实际上是为了提供完整性,以便 [尤其是旧版] 不支持 RFC-6186 的电子邮件客户端仍能找到其配置。如果您需要自动发现/自动配置的快速修复,请先设置 RFC-6186 - 例如在您域的区域文件中(来自 RFC),
_imap._tcp SRV 0 1 143 imap.example.com.
_pop3._tcp SRV 10 1 110 pop3.example.com.
_submission._tcp SRV 0 1 587 mail.example.com.
如果在为您的域设置 RFC 6186 记录后仍然需要自动发现/自动配置,请继续阅读...
要求
对于 Microsoft 自动发现:PHP(编辑:我在 Ansible 角色中使用了 PHP;其他服务器端语言也可用......)(XML 模板需要LoginName
根据邮件客户端的 Web 查询提供的 POST 数据生成 < > 字段)。
除了简单的单域设置外,可能还需要一些 DNS 设置。可能的 DNS 设置可能如下所示,
- 雷鸟:
autoconfig.example.org CNAME--> some.central.domain
- 微软:
_autodiscover._tcp.example.org SRV --> some.central.domain
对于给定区域/域的命名/BIND 语法,即,
autoconfig IN CNAME some.central.domain
_autodiscover._tcp IN SRV 0 0 443 some.central.domain
测试自动配置
使用此角色为自动配置设置主机后,您可以通过发出命令行请求来测试结果,例如,
curl http://autoconfig_target_domain/.well-known/autoconfig/mail/config-v1.1.xml
curl http://autoconfig_target_domain/mail/config-v1.1.xml
指autoconfig_target_domain
的是 DNSCNAME
记录的目标域_autoconfig._tcp.
你的域名,或者对于更简单的设置(没有SRV
记录)可能只是你的域名和/或autoconfig.
你的域名。
测试自动发现
使用此角色设置自动发现的主机后,您可以通过发出命令行 POST 请求来测试结果,例如,
curl -XPOST -d @req.xml --header "Content-Type:text/xml" https://autodiscover_target_domain/autodiscover/autodiscover.xml
指autodiscover_target_domain
的是 DNSSRV
记录的目标域_autodiscover._tcp.
你的域名,或者对于更简单的设置(没有SRV
记录)可能只是你的域名和/或autodiscover.
你的域名。
看起来req.xml
像这样,
<?xml version="1.0" encoding="utf-8"?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006">
<Request>
<AcceptableResponseSchema>http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a</AcceptableResponseSchema>
<EMailAddress>[email protected]</EMailAddress>
</Request>
</Autodiscover>
尤其有助于解决这个问题的是本网站。