Exchange使用的自动发现方法看起来不错。 但是我没有Exchange。
它看起来像设置邮件帐户时,设备/邮件客户端查找autodiscover.xml文件。
有没有办法自己创build这样的文件,并在通常的Linux服务器上提供服务,指向一个普通的邮件Linux服务器?
首先你需要告诉Outlook去哪里。 在DNS中使用指向包含Autodiscover.xml文件的服务器的SRVlogging:
_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文件返回给客户端。 它embedded了一些PHP,因此您可以根据input到Outlook中的电子邮件地址返回不同的值。 (如果您希望使用一个自动发现文件使用一个configuration脚本为多个域/客户端返回结果,则很有帮助)。
一旦该脚本在您的networking服务器上运行,请确保您使用有效的证书启用HTTPS,以便Outlook在尝试下载时不会引发错误。
刚刚完成在我的Linux服务器上configuration自动发现。 现在几乎所有可能的客户端都会自动设置邮件。
这是一个简单的解决scheme来设置自动发现与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]
NB! 请记住要获得签名的SSL证书。
事实上,如果你的客户是Outlook(假设因为你说他们正在查找autodiscover.xml),你想使用Guessmart进行自动configuration,如果你使用POP / IMAP和SMTP。 Guessmart基本上是使用您的电子邮件地址和密码Outlook使用普通的POP / IMAP / SMTP端口尝试各种主机名,直到它find一个它可以成功login。 在Outlook中与自动发现相同的用户体验,但对于非Exchange服务器则是相同的。
您可以通过ctrl-右键单击通知托盘Outlook图标并select“testing电子邮件自动configuration”来testingOutlook中的所有内容。 取消选中自动发现并testingGuessmart,查看Outlook如何工作。
啊 – 只有当你的Linux服务器看起来像一个exchagne服务器。 这不是“使用open api”是“使用交换内部API”。
不,自动发现特定于Exchange,您不会在该环境之外工作。
这不仅仅是 .xml文件,当涉及到自动发现时,有很多东西在起作用。
为了给你一些快速的背景,阅读这篇文章,你会得到一个更好的主意。