スキップしてメイン コンテンツに移動

Google Appsドメインでメール設定を自動化する

どうも、自分でも自分のブログの存在を忘れていたようなブログです。

最近のメーラーはメールアドレス(≒アカウント名)とパスワードを入れるだけで、メールサーバの設定は内部で自動で行ってくれたりするようになったりもしてるのですが、あれの設定どうやるんだろうって去年くらいに調べてました。

もっとも、Google Appsなんかの場合は最近の製品の場合、アカウント設定時にGmailアカウントとして選択することでそのまま設定出来たりするので必要なかったりもするのですが……。
もちろんこれはGoogle Appsなどの製品以外でもこれは応用出来るので、自前のサーバーで他者にアカウント提供する場合でも便利になります。


さて本題ですが、これを実現するには Autodiscover というMicrosoftがMicrosoft Exchangeで実現するために作った規格を使うみたいです。
https://technet.microsoft.com/ja-jp/library/bb124251(v=exchg.150).aspx


設定についてはとても簡単で、HTTPS接続出来る場所に、XMLで記述された設定ファイルを特定のパスに配置するだけです。

設置する設定ファイルは下記のように記述します。

Google Appsを使っている場合はこれをコピーして autodiscover.xml という名前で保存すればOKです。

このファイルを、メールで利用するドメイン名を利用したURLに設置する必要があります。
例えば、 your-name@mail.example.net というアカウントのメールを発行するのであれば、 https://mail.example.net/autodiscover/autodiscover.xml というURLでアクセス出来るようにする必要があります。
もしくは、 https://autodiscover.mail.example.net/autodiscover/autodiscover.xml というように、autodiscover. というサブドメインを設定し、その下に配置すると言うことも可能です。

後者については、例えば your-name@example.com というメールアドレスを利用していて、 https://example.com はサービス用URLであり、ドキュメントルート以降のパスは全てサービスURLとして自由に生成可能な状態としていた場合、 https://example.com/autodiscover というネーム空間を汚染してしまうため、そのような状態を回避することができるようになります。


既に例に挙げているとおり、これらの設定には基本的にはhttpsでアクセス出来るようにする必要がありますので、各自でメールドメイン毎にSSL証明書を用意する必要があります。
(SSL環境をどうしても用意出来ない場合は http://autodiscover.<メールドメイン>/autodiscover/autodiscover.xml のURLでも可能なようです)

StartSSLで1年間無償で使えるSSL証明書を取得するのもいいですし、DNSにCloud Flareを使っている場合、HTTPリクエスト時にCloud Flareを通過する設定にしていればSSL機能を無償で提供してくれますので、それで代替も出来ます。

また、最近はLet's EncryptプロジェクトでSSL証明書を無償で発行することも可能ですので、それらを利用してみるのもいいでしょう。


今回はGoogle Appsの設定をするものとして記述しましたが、冒頭でも触れていたとおり、autodiscoverは自前のサーバ設定にも有効です。 autodiscover.xml の<Protocol>内の各項目をそれぞれの環境に添った設定にしておけば
それが反映されます。


また、DNSのSRVレコードを設定出来る環境の場合、ゾーンファイルに下記の様にSRVレコードを設定することで、その設定を検出させることも可能なようです。

_imap._tcp	300	IN	SRV	0			1	993	imap.gmail.com.
_pop._tcp 300 IN SRV 0 1 995 pop.gmail.com.
_smtp._tcp 300 IN SRV 0 1 465 smtp.gmail.com.
;;_autodiscover._tcp 300 IN SRV 0 0 443 autodiscover.example.com.

コメント

このブログの人気の投稿

さくらのクラウドでマストドンのインスタンスをサブドメインで作る

タイトルに「の」と「で」が多すぎますが気にせずいきますこんばんは。

さくらのクラウドで、いま話題のMastodon(マストドン)のインスタンスを作成してみました。
Mastodonは普通にソースを展開して自分で普通にセットアップする方法や、Docker-composeを用いた方法などがありますが、さくらのクラウドでは、スタートアップスクリプトを用いて、管理画面から必要な項目を入力、スクリプトを選択するだけで簡単に立ち上げることができるようになっています。

さくらのクラウドのMastodonスタートアップスクリプト 実は少し前にこの方法で立ち上げたりもしていたのですが、本当に簡単でサクサクできてもの自体は30分程度で完了します。
管理者ユーザーを作成するには、通常のユーザー登録と同じ手順で画面からユーザーを作成後、一度コンソールからログインして、mastodonユーザーで下記のコマンドを実行する必要があります。

# su - mastodon % cd ~/live % bundle install % RAILS_ENV=production bundle exec rails mastodon:confirm_email USER_EMAIL=登録時のメールアドレス % RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=作成したユーザーID mastodon:confirm_email でメール受信確認をスキップして承認済みに、mastodon:make_admin で指定したユーザーを管理者に設定します。

これでインスタンス管理者として様々な操作をGUI上から行えます。

同類の記事は恐らく既にたくさんあるので、詳しい作り方に関してはそちらを参考にしてください。

気になるところが 上記のさくらのクラウドニュース内で記載されているMastodonスタートアップスクリプトでの構築方法に関する記事内で、一つ気になるところがありました。
それが
※サブドメイン(例:mstdn.example.com)には対応していません。 という記述部分です。

つまり、このスタートアップスクリプトを利用した場合、サービス専用のドメインを用意する必要があります。
既存のドメインをなるべく利用したい場合には向…

ブログを移転しました(WordpressからBloggerへ)

現在のこのブログを作ってから、長年自前サーバ(VPS)上で動かしていたWordpressで公開し続けてきました。
Wordpressは自由度もあり、カスタマイズ性もあり、また自前での場合はドメインもサーバ設定カスタマイズすら自由で、自分の行いたいようにいじることができました。

しかし、サーバ側のスペックや他の開発サービスとの兼ね合いなどもあり、人が滅多に来ないブログとは言えブログ自体の重さを感じておりました。
そのため、ここ最近はブログ用に別途VPSを借りて高速Wordpressとして売り出されているKUSANAGIを利用して公開したりもしていましたが、所詮趣味ブログであり、特に収益を上げるために書いたり(所為アフィリエイト)と言うことをしているわけでもなく、記事も頻繁に書くほどではなかったので、コスパの問題も出てきました。

そこで以前から計画していたBloggerへの移行を行い、ようやく公開作業が完了出来ました。使いやすさなどを考えると、はてなブログなどを利用するのが恐らく賢明だと思いますが、あれこれしようとすると有料プランで運用する必要があり、どうするかな、というところで悩みました。(VPSに比べれば月額は明らかに安いですが)

Bloggerは日本ではあまりユーザーが多くないように思えますが、ブログホストサービスとしての歴史は長く、またGoogleに買収されてからも安定して稼働しているので、こちらに移行しようと考えました。

Wordpressからの移行はそれほど大変ではないようで、それなりに大変でもありました。

記事やコメントの移行については簡単で、Wordpressの管理画面から「設定」→「エクスポート」で出力されるXMLを保存し、http://wp2blogger.info/ などのサイトへアップロードすることで、Blogger用XMLフォーマットに変換してくれるので、それをBloggerに取り込めば大体終了です。

問題は記事内で使用している画像です。外部サイトから読み込んでいる場合であればそのままでも行けるかも知れないですが、独自にアップロードしていた画像はすべてBloggerへアップロードし直す必要がありました。
またアップロード後も、元のファイル名でのURLにはならず、それぞれGoogleドライブ内で割り当てられているファイル名に変換されるので、一…

PHPで相対パスから絶対URL(URI)を作成する

HTMLページをパースしてURLを取り出す処理を書いていたのですが、ページ内のリンクなどが全部絶対URLで記述されていれば非常に楽なのですが、現実としてそうでもなく、ページによっては相対パスで書かれていたりして、正規表現で偏にリンクからURLを抜き出すだけではうまくできませんでした。

そこで少しググってみたら

PHPで相対パスから絶対URL(URI)を作成する|PHPプログラムメモ|プログラムメモ

という記事を発見!おぉ、これは便利!
と思って使わせてもらおうと思ったのですが、いくつかテストしてみて、相対パス処理で不備があるなーと思ったところがあったのでちょっと改良させてもらいました。

37~38行目は正直いらない気がしたのですが、 PHP 5.3 のCLIでWindows上でテストした際に、なぜか \/ (アルファベットのVではなく、\ と / ) で出力されたのが気になったので、無駄かもしれないけどあえて記述。
あと $parse の初期化もここまでする必要ないけど、念のためNotice対策を…w

相対パスから絶対URLする関数

< ?php
/**
* 相対パスから絶対URLを返します
*
* @param string $base ベースURL(絶対URL)
* @param string $relational_path 相対パス
* @return string 相対パスの絶対URL
* @link http://blog.anoncom.net/2010/01/08/295.html
* @link http://logic.stepserver.jp/data/archives/501.html
*/
function createUri( $base = '', $relational_path = '' ) {

$parse = array (
'scheme' => null,
'user' => null,
'pass' => null,
'host' => null,
'port' => null,
'path' => null,
'query' => …