web-dev-qa-db-ja.com

Exchangeなしで自動検出機能を使用する方法はありますか?

Exchangeで使用されている自動検出方法は素晴らしいようです。しかし、私はExchangeを持っていません。

メールアカウントを設定するときに、デバイス/メールクライアントがautodiscover.xmlファイルを探すように見えます。

自分でそのようなファイルを作成して、通常のメールLinuxサーバーを指す通常のLinuxサーバーでそれを提供する方法はありますか?

12
SamK

まず、Outlookにどこへ行くかを伝える必要があります。 Autodiscover.xmlファイルを含むサーバーを指すDNSのSRVレコードを使用します。

_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に入力された電子メールアドレスに応じて異なる値を返すことができます。(1つの自動検出ファイルを使用して、1つの構成スクリプト)。

スクリプトがWebサーバー上にあり、機能している場合は、有効な証明書を使用してHTTPSを有効にし、ダウンロードしようとしたときにエラーがスローされないようにしてください。

17

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]

NB!署名されたSSL証明書を取得することを忘れないでください。

9
Frode Saetre

実際にクライアントがOutlookの場合(autodiscover.xmlを検索していると言ったので、私はそれを想定しています)、POP/IMAPとSMTPを使用している場合は、自動構成にGuessmartを使用します。 Guessmartは基本的にOutlookで、メールアドレスとパスワードを使用して、一般的なPOP/IMAP/SMTPポートを使用してさまざまなホスト名を試し、正常にログインできるホストを見つけます。 Outlookのユーザーエクスペリエンスは自動検出と同じですが、Exchange以外のサーバーを対象としています。

Outlookで通知トレイのOutlookアイコンを右クリックして[電子メールの自動構成のテスト]を選択すると、Outlookでこれらすべてをテストできます。自動検出をオフにしてGuessmartをテストし、Outlookの動作を確認します。

1
Bret Fisher