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


12

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

设置邮件帐户时,设备/邮件客户端将查找autodiscover.xml文件。

有没有办法自己创建这样的文件并将其提供给普通的Linux服务器,并指向普通的邮件Linux服务器?

Answers:


17

首先,您需要告诉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在尝试下载它时不会引发错误。


您是否有指向文档注册表的链接。SRV记录?
Frederick Nord

这是一个不错的参考:markgossa.blogspot.com/2015/11/…–
亚伦·德·

9

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

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

DNS:

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

PHP(autodiscover.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证书。


android和thunderbird也可以与此设置一起使用吗?
neutrinus

雷鸟从Mozilla还具有自动发现设置为工作在MDN概述developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/...
约翰·格林

1

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

您可以通过在ctrl中右键单击通知托盘Outlook图标并选择“测试电子邮件自动配置”来在Outlook中测试所有这些内容。取消选中自动发现并测试Guessmart以查看Outlook的工作方式。


我一次注意到了autodiscover.xml的东西。但是Thunderbird也在试图“猜测” pop / imap使用的服务器。有时它猜错了。我认为Apple产品也是如此。我想知道市场上大多数电子邮件客户是否存在标准化的东西。因为人们不知道,也不关心smtp,pop或imap代表什么。希望能帮助到你。
SamK 2011年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.