有没有办法可以在没有 Exchange 的情况下使用自动发现功能?

有没有办法可以在没有 Exchange 的情况下使用自动发现功能?

Exchange 使用的自动发现方法看起来很棒。但是我没有 Exchange。

看起来,在设置邮件帐户时,设备/邮件客户端会查找 autodiscover.xml 文件。

有没有办法自己创建这样的文件并在通常的 Linux 服务器上提供服务,并指向通常的邮件 Linux 服务器?

答案1

首先,您需要告诉 Outlook 要去哪里。使用 DNS 中的 SRV 记录指向包含 Autodiscover.xml 文件的服务器:

_autodiscover._tcp.mydomain.com. 3600 IN SRV  10 10 443 my-web-server.mydomain.com.

在此处使用 PHP 脚本:http://virer.net/info/ol-autodiscover/index.html将 Autodiscover.xml 文件返回给客户端。它嵌入了一些 PHP,因此您可以根据输入到 Outlook 中的电子邮件地址返回不同的值。(如果您想使用一个自动发现文件通过一个配置脚本返回多个域/客户端的结果,这将很有帮助)。

一旦该脚本在您的网络服务器上运行,请确保使用有效证书启用 HTTPS,以便 Outlook 在尝试下载时不会抛出错误。

答案2

刚刚在我的 Linux 服务器上配置完自动发现。现在几乎所有可能的客户端都会自动设置邮件。

这是一个使用 POP3/IMAP 设置设置自动发现的简单解决方案;

DNS:

_autodiscover._tcp.yourdomain.com. 3600 IN SRV  10 10 443 mail.yourmx.com.

PHP(自动发现.php):

<?php
preg_match("/\<EMailAddress\>(.*?)\<\/EMailAddress\>/", $data, $matches);

//set Content-Type
header("Content-Type: application/xml");
?>
<?php echo '<?xml version="1.0" encoding="utf-8" ?>'; ?>
<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>POP3</Type>
<Server>mail.yourmx.com</Server>
<Port>995</Port>
<LoginName><?php echo $matches[1]; ?></LoginName>
<DomainRequired>off</DomainRequired>
<SPA>off</SPA>
<SSL>on</SSL>
<AuthRequired>on</AuthRequired>
<DomainRequired>off</DomainRequired>
</Protocol>
<Protocol>
<Type>IMAP</Type>
<Server>mail.yourmx.com</Server>
<Port>993</Port>
<DomainRequired>off</DomainRequired>
<LoginName><?php echo $matches[1]; ?></LoginName>
<SPA>off</SPA>
<SSL>on</SSL>
<AuthRequired>on</AuthRequired>
</Protocol>
<Protocol>
<Type>SMTP</Type>
<Server>mail.yourmx.com</Server>
<Port>465</Port>
<DomainRequired>off</DomainRequired>
<LoginName><?php echo $matches[1]; ?></LoginName>
<SPA>off</SPA>
<SSL>on</SSL>
<AuthRequired>on</AuthRequired>
<UsePOPAuth>on</UsePOPAuth>
<SMTPLast>off</SMTPLast>
</Protocol>
</Account>
</Response>
</Autodiscover>

.htaccess 文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ autodiscover.php [NC,L]

注意!请记住获取签名的 SSL 证书。

答案3

实际上,如果您的客户端是 Outlook(我假设是,因为您说他们正在查找 autodiscover.xml),如果您使用 POP/IMAP 和 SMTP,则需要使用 Guessmart 进行自动配置。Guessmart 基本上是 Outlook,它使用您的电子邮件地址和密码尝试使用常见 POP/IMAP/SMTP 端口的各种主机名,直到找到可以成功登录的主机名。它在 Outlook 中的用户体验与 Autodiscover 相同,但适用于非 Exchange 服务器。

您可以在 Outlook 中测试所有这些,方法是按住 Ctrl 键并右键单击通知托盘 Outlook 图标,然后选择“测试电子邮件自动配置”。取消选中自动发现并测试 Guessmart 以查看 Outlook 的工作原理。

答案4

不,自动发现功能特定于 Exchange,在该环境之外您无法使用它。

它不是只是.xml 文件,当涉及到自动发现时,有很多事情在起作用。

为了让您快速了解一些背景知识,请通读本文,您将对其有更好的了解。

http://www.msexchange.org/articles_tutorials/exchange-server-2010/management-administration/exchange-autodiscover.html

相关内容