Twitter への写真投稿は写ツ(はてなフォトライフ)から始めて、Flickr とフィード投稿サービスの組み合わせを使うようになり、その後携帯百景を使うようになった。 携帯百景を使うようになってからは、ほぼ携帯百景がメインに。 やはり写真に文字が入るというのが楽しくて。
しかしここ最近うまく投稿されなくてちょっとストレス。 Twitter に投稿されないだけでなく、携帯百景自体にアップロードされない。 Gmail を疑って別の SMTP サーバ経由にしたら駄目だった写真が成功したので、設定を切り替えたんだけれど、結局また駄目になったり。 携帯百景のサーバが不調なのか、メール送信の問題なのか、写真の問題なのかよくわからない。
残念だけれど携帯百景は諦めて、また Flickr にアップロードすることにしよう。 Flickr -> FeedBurner -> Twitter という以前に設定して今も有効になっている流れがあるんだけれど、2009年6月30日から Flickr でも Flickr2Twitter という Flickr から直接する Tweet するサービスが開始しているので、これからはこちらを使うようにしよう。
スマートフォンからは Flickr2Twitter 専用メールアドレスへ写真を添付したメールを送ることでアップロードと同時に Tweet させることができる。
なおアップロードした写真はデフォルトで Only You (Private) になるように設定してあるんだけれど、Flickr2Twitter でもこれが適用されてしまうようだ。 そのままだと、Flickr 上で非公開なのに 短縮 URL 付き Tweet が流れるというヘンテコリンなことになる。
Flickr へのメールアップロードの際にアップロード用メールアドレスの @ の前に +public をつけたメールアドレスに送ると Anyone (Public) 指定できるのだが、試してみたところ Flickr2Twitter でも有効であることを確認。 Flickr2Twitter 用メールアドレスが example2twitter@photos.flickr.com の場合
example2twitter+public@photos.flickr.com
に送ると公開になる。Tweet を流す時は必ず公開にするので、このアドレスをアドレス帳に登録。
FeedBurner 経由と違ってタイムラグなく Tweet されるのでいいね。
携帯百景にアップロードした際には、文字の入った画像をダウンロードして Exif データ設定後 Flickr へアップロードするという作業をしていたのだけれど、それが不要になるので手間も軽減される。
今後はこのラインでいこう。
デスクトップ Windows PC 上でメールを送受信している時は社内で POP3 しか提供されていなくても問題なかったんだけれどノート PC をあわせて使うようになったら、こちらでメール閲覧できなくてちょっと不便してた。 POP3 サーバ上に数日残すようにしておいて両方の端末で受信するというありがちなやり方はイケてないのでローカルに IMAP サーバ立てることにした。
今回は母艦が Windows デスクトップ PC なので Windows 用の IMAP サーバからセレクト。
選んだのは hMailServer。
バージョン 4 までは GPL、バージョン 5 以降はオープンソースではなくなったが free product として提供されている。
POP3 サーバからメールを POP してきてローカルのデータベースに保存し IMAP4 プロトコルでのアクセスを提供してくれるサービスとして動いてくれる。SMTP サーバ機能も持っている。データストアとしては MySQL や PostgreSQL なども選択できるが、パーソナルユースなら embedded されている Microsoft SQL Server が使えるので手間いらずである。
実際使ってみたけれど GUI ベースで特に迷うことなく設定ができ、すぐに使い始めることができた。メール関係のサーバを Linux とかで立てる時は結構神経が磨り減るものだがストレスセットアップできた。ローカルにあった MH 形式のメールを数万通 Sylpheed で IMAP 経由でつっこんだけど今のところ順調。いい感じ。
これで OK。
あとは同じホスト上の MUA からは IMAP サーバとして localhost を指定して設定した ID とパスワードで受信設定を行えば OK。 送信については hMailServer を通さずに普通に送信するように設定し、送信したメールを IMAP 上の Sent フォルダ等に保存するようにしておく。
別のノート PC 等の MUA からは IMAP サーバとして hMailServer を立てている Windows PC のホスト名(等接続できる名前)を指定して同様に設定。
これで hMailServer が定期的にメールを POP3 にて受信してくれるので、あとは各 MUA から hMailServer に接続してメールを読めばよい。IMAP なので既読管理やフォルダ管理なども一元的にできる。
その他 hMailServer にはルールを設定して IMAP フォルダ振り分けしたり、迷惑メールフィルタやウイルスフィルタ設定したりできるので、必要なら設定するとよさそげ。
そのうち妻に Android の標準 Gmail アプリの使い方を説明することになりそうなので、自分でも久しぶりに使っておこうかなと思い MTA を K-9 Mail から Gmail に変更してみることにした。
メール自体は全て Gmail に集約しているのに K-9 Mail を使っていたのは、当初 Android の標準 Gmail アプリが From の変更ができなかったから。なので From を切り換えて使えるように K-9 Mail にアカウントを2つ作成して「受信は同じ Google アカウントから IMAP で」「送信はそれぞれの From 設定と SMTP サーバから」とちょっと変態設定で使っていたのである。 で Gmail で重要判定されたメールのみを Android 端末にプッシュさせる設定とかをして運用していた。
しかし今は標準 Gmail アプリでも From の切り換えができてきちんとそれぞれ設定した SMTP サーバ経由で送ってくれるし、Gmail 自体にタブ/カテゴリ機能がついてモバイル端末で大切なメールを優先して見られるようにとシフトしてきているので、もう標準 Gmail アプリでいいんじゃないかなと。
しばらく Gmail のフィルタを鍛えなおしたりしてチューニングしてみる。
[ Android アプリレビュー ]
IFTTT + HootSuite が HootSuite 障害で動かなくなった。
→ IFTTT + Gmail に変更。URL 短縮も自前でやる必要があるのでフィード側で対応したものの、Gmail 側に bot 疑惑をもられたのか「送信メールが reject される」「Gmail ログイン時に CAPTCHA 入力を求められる」「Android での Google アカウント設定も一度強制的に無効化された」などとなり、ban の危険性が出てきたので停止。
→ かわりに IFTTT の Mail チャネルを使おうかと。Mail チャネルだとそのアドレスにしか受信できないので、受信したら自動的に別のアドレスに配送するプログラムを書くことにする。さくらのレンタルサーバでのプログラム実行方法を確認。
→ IFTTT で Mail チャネルに送った場合 text/plain なパートはボディ中の URL が変なクリックトラッカーの URL に置き換えられているので使えないことが判明。text/html パートの方を使わないと駄目ぽ。ということで Perl スクリプトで「Email::MIME で parse」「HTML::TreeBuilder で該当箇所を抽出」「Email::Sender::Transport::SMTP::TLS」でメール送信するようにした。IFTTT での trigger が foursquare の時と feed の時で Email チャネルから送信される HTML 構造が変わるなんて……。組み合わせ別にテンプレートが違うのか。
→ 配送できるようになったけれど IFTTT からうまく送られない。再 activate しても PIN すら届かない。別のメールアドレスにすると PIN が届く(数時間後だったりすぐだったり)ので、窓口にしたいメールアドレスが利用不可になっているか(テスト中にエラーを返してしまっていて使えない判定されたとか?)、IFTTT の方の配信が詰まっているのかよくわからない状態。プログラムができたのにそもそも送られてこないとは。
→ という作業をしている間に放置していた postmaster に3万通ぐらい cron のログがたまってたのに気がつく。Gmail で受信しておくようにするかと Mail Fetcher 設定。そうしたら10数時間後ぐらいから、同じ Gmail アカウントに設定してあった Mail Fetcher を巻き込んで全部「確認中」で止まってフェッチしてくれなくなってあばば。急いで postmaster の Mail Fetcher 設定を外す。数時間後に他のフェッチが再開し始めてほっと一安心。
→ イマココ。
以前から iPad 2 を家電話的に使いたいと思っていたのと、家族共有しているんだけれどある程度ネットサービス等にサインインして使いたいと思っていたので、昨日 iOS の Skype を使ってみたのを機にきちんと設定してみることにした。
前提として以下のように利用できるのが目標。
これが一番時間のかかる作業。
ような名前で。一晩考えたり、花言葉とか見たり、Google 検索してあまり使われていないか確認したり、海外人名辞典サイト見たりして決定。
以下便宜上 'XXX' と記述。
いつもの手順で。
で iPod touch 5th から/への発着信を確認。
これで別の自分の iOS 端末から iPad 2 へ FaceTime で発信して、通話できるようになった(パスコードアンロック不要で)。また連絡先に登録してある人へのみ iPad 2 から発信できるようになった(ただし要パスコードアンロックなのであまり使わないはず)。
できれば連絡先に登録していない人からの着信はできないようにしておきたいのだけれど、その設定は無いみたい。残念。
Skype もインストールして、Skype 名 XXX で登録し iPod touch 5th と Xperia GX から/への発着信も確認。
ただし FaceTime と違って「Skype を起動しておく必要がある」「着信時にパスコードロックを解除する必要がある」ということで前提の目標は達成できなさそう。できれば回線契約をしている Android 端末の Xperia GX からも通話したいので Skype で運用できればいいんだけれどね。Wi-Fi が無いところからはテザリング経由で iPod touch 5th からかけるしかないかな。
TLS と認証が必要な SMTP サーバ経由でメールを送信する以前書いたスクリプトをちょっと整理した。標準入力からメッセージ本文を受けとって送信できるように機能を切り出し。
メールでコンテンツを投稿できるサービスにメールを投げる時用。
標準入力で受け取った本文を Email::MIME でメールの形式に変換して、Email::Sender::Simple を使って送信。transpot として Email::Sender::Transport::SMTP::TLS を使う。なお、今 Email::Sender::Transport::SMTP::TLS の Pod ドキュメントをみたら今後は Email::Sender::Transport::SMTPS の方がお薦めと書いてあったのでその方が良いのかも。
#!/usr/bin/perl use warnings; use strict; use utf8; use open IN => ':utf8'; use open ':std'; use Email::MIME; use Email::Sender::Simple qw(sendmail); use Email::Sender::Transport::SMTP::TLS; eval { my $message; { local $/ = undef; $message = <>; } my $subject = "sendXXX: $message"; $subject = substr($subject, 0, 32 - 3) . '...' if length($subject) > 32; my $new_mail = Email::MIME->create( header_str => [ From => 'me@example.com', To => 'post@example.com', Cc => 'me@example.com', Subject => $subject, ], attributes => { content_type => 'text/plain', charset => 'UTF-8', encoding => '8bit', }, body_str => $message ); sendmail( $new_mail, { from => 'me@example.com', transport => Email::Sender::Transport::SMTP::TLS->new( { host => 'smtp@example.com', port => 587, username => 'myusername', password => 'mypassword' } ) } ); }; if ($@) { open my $file, '>>', '/home/me/var/log/sendXXX/error.log' or die $!; print $file $@, "\n"; close $file; exit 1; } exit 0;
[ Perl モジュール ]
さくらのレンタルサーバの「ディスク容量増量ならびにOSバージョンアップに伴うメンテナンス」が寝ている間に終了。 Perl も新しいバージョンが使えるようになるのだけれど、デフォルトでは今までと同じバージョンだから何もしなくても良いはず。
って確認したらスクリプトが動かなくなっている……。
あー 32 bit が 64 bit になったんだっけ。 SpeedyCGI が動かなくなっているのでまず外し。で再度走らせたら今度は Storable が Long integer size is not compatible といって既存データを読めなくなったので破棄して再生成中。あとは別のスクリプトでいくつか動かなくなったものがあったので、そちらは依存ライブラリを cpanm しなおし。
それとそれと
メールの送信前認証としてご提供している POP before SMTP を廃止いたします。そのため、今後はSMTP認証(SMTP-AUTH)が必須となります。
ってあったのでメールの方も確認したら Gmail からさくらのレンタルサーバ経由でメールが送れなくなっている。あーでも POP before SMTP なんか使ってなかったでしょう。なんでだー。って Twitter あたりみたら、どうも「国外IPアドレスフィルタ」(デフォルト有効)の機能提供開始のせいっぽい。 Gmail のサーバ国内とは限らないもんねぇ。
開始日時は自分のサーバは3月19日(水) 12:00 なので、この時から既に送れない状態になっていたのか。1週間気がつかなかったとか、もうプライベートではメールの利用頻度下がっているってことだねぇ。
さて、国外IPフィルタを無効化。
今日は朝からホットだった。
最近 Nexus 6 とか欲しいなと思っている。もし今のNTTドコモの契約で使うとして、SIM カードを移してもキャリアメールはそれを必要とするネットサービス用に念のため使えるようにしておきたいなということで、ドコモメール(docomo mail)の設定まわりをしてみた。
キャリアメールはもう大して使っていないのでついこの間までspモードメール(sp-mode mail)のままだったのだけれど、去年12月の Xperia GX をリセットしたのを機にデバイス側はドコモメールに変わっている。
ドコモメールだと SMTP・IMAP で送受信できるとのことなので Android の Gmail アプリにアカウント追加をすることにした。
最初サーバ設定がうまくできなくてなんだろうと思ったら、事前に「ドコモメールのdocomo ID利用設定」が必要だったというオチだった。こちらをドコモメールアプリから設定しあらためて Gmail アプリでアカウント設定。
これで送信できるようになった。ただ受信については Gmail アプリではメールが一覧に出ず閲覧することもできず。
Web で見た限り既知の状態みたい。K-9 Mail 等では読むこともできるらしいので、IMAP の実装の違いとかそういうあたりなのかな。急ぎではないのでしばらく様子見にしておくことにする。
[ Android アプリレビュー ]
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。