如何在您的服务器上为 Android 邮件应用设置自动配置电子邮件?

如何在您的服务器上为 Android 邮件应用设置自动配置电子邮件?

我在一家本地 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(尤其是参见taskstemplates目录),它也应该是可以理解的;进一步你会发现如何测试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>

尤其有助于解决这个问题的是本网站

相关内容