今朝スタバでカプチーノを飲んでいるうちに突然思い立って、スマフォ(SharpのIS03)でiCloudのメールを読めるようにしてみた。
IS03には「PCメール」というメーラーがあり、これを使うと複数のアカウントのメールを読み書きできる。すでに2つのアカウントを設定していたのでiCloudもすぐできると思ったら意外に難航したので書いておく。
最初にApple公式の「iCloud:メールサーバの情報」を見てアカウント情報を設定し、受信(IMAP4)のほうはすんなり行ったのだが、送信(SMTP)のほうはどうやっても「サーバに接続できません」のようなメッセージが出てきてしまってうまくいかない。ちょっと検索して調べてみると、PCメール側の設定を"SSL"ではなく"TLS"にするとうまくとのこと。さっそくやってみると、確かにつながった。それにしてもApple公式のページには"SSL"と書いてあるのに、PCメール側は"TLS"とはどういうことだろうと思ってちょっと調べたところ、どうやら以下のようなことらしい。
まずSMTPでセキュアな通信をする場合、大きく分けて2つの方法がある。1つは最初からセキュアな通信路を確保してその上でSMTPを使う方法(以下、SMTPsと表記)、もう1つはまず通常通りSMTPセッションを開始し、その後STARTTLSコマンドを送信して同じポート上でセキュアな通信に移行する方法(以下、STARTTLS)だ。SMTPsでは通常、465番のポートを使うのに対し、STARTTLSでは普通どおり25番または587番のポートを使う。
問題なのは、この2種類の方法の呼称がちゃんと決まってないことだ。iCloudのメールサーバはSTARTTLSなのだが、Appleはこれを"SSL"と呼んでいるのに対し、IS03のPCメールは"TLS"と表記している。だからPCメールで"TLS"を設定するとうまくいく。一方、PCメールの設定項目で"SSL"を選ぶとSMTPsになるので、当然ながら接続に失敗する。世の中ではほかにも"SMTP over SSL"とか"SSL/TLS"などの呼び名も使われているが、いずれもどちらの通信方法なのかはっきりしない。結局メール設定時によくわからないときは、"SSL"であれ"TSL"であれ(あるいはそれ以外であれ)、とにかくそれらしい設定項目すべてを試してみるのが良いようだ。
ちなみになんでこんなに呼称が混乱しているかというと、そもそもSSLがTLSに名称変更されたという経緯があるのに加え、STARTTLSにしろSMTPsにしろ結局どちらもTLSを使うことにあるようだ。SSLはversion 3.0までは"SSL"と呼ばれていたが、その後"TLS"に改称された。このためよく"SSL/TLS"と表記されるが、一方で"SSL"という呼称も根強く残っている(もしかしたら実際にversion 3.0以前のSSLを使っているケースもあるのかもしれない)。なお、wikipediaのSTARTTLSの記事によると、メジャーなプロバイダーではGoogle(GMail)とApple(iCloud)がSTARTTLSを使っているとのこと。
参考文献
0 件のコメント:
コメントを投稿