Introduction

ブログ内検索

  • このサイトの記事を検索 by Google

おすすめの一冊!

無料ブログはココログ

« 2012年3月 | トップページ | 2012年7月 »

2012年5月

2012-05-23

Linux で日本語メール

Linux 上の Perl スクリプトで日本語メールを送信するのに半日かかったので、メモ。

落とし穴は、Subject の MIME エンコードでした。


まず、本文は Unicode で書いておくのが簡単かと思います。
UTF-8N (BOM 無しの UTF8)で書いておいて、ヘッダには、
Content-Type: text/plain; charset="utf-8"
と指定しておくのが楽。 あとはパイプで /usr/sbin/sendmail に食わせれば OK. ただし、日本語の Subject は UTF-8 で書いておいても化けます。 なぜなら、ヘッダは "Content-Type" の範疇じゃないから。 ヘッダはいわゆる MIME エンコードをしておく必要があります。 MIME エンコードは、Encode::MIME::Header でできます。 具体的に言うと、次のコードでできます。
use Encode qw(encode); $subject = encode('MIME-Header-ISO_2022_JP', $hogehoge);
たぶん、スクリプト先頭で、
use utf8;
をしておく必要があるかもしれません。 最終的には次のようなコードを使いました。
#!/usr/bin/env perl use strict; use warnings; use utf8; use Encode qw(encode); my $text = sub { open my $fh, '<', "./hogehoge.txt" or die $!; local $/ = undef; my $s = <$fh>; close $fh or die; return $s; }->(); my $email = sub { use Email::Simple; return Email::Simple->new($text); }->(); $email->header('To') = 'hogehoge@example.com'; $email->header('Subject') = encode('MIME-Header-ISO_2022_JP', $title); { open $fh, '|-', '/usr/sbin/sendmail -t' or die $!; print $fh $email->as_string; close $fh or die $!; }
ご参考まで。

2012-05-09

Pocket (Read It Later) の Read リストが見つからない

先日、オンラインブックマークサービス "Read It Later" が
"Pocket" という名前に変わりました。
公式ブログの記事 (2012/Apr/17) Introducing the all-new Read It Later - now called Pocket
膨大な数の連携アプリがある(だからこそ利用される)サービスなので、 API のアクセスポイントは変えないらしい。まぁ、賢明な判断かと。 突然の発表だったので、フォロー記事も出ています。
公式ブログの記事 (2012/Apr/18) Pocket Works with Your Old Read It Later Account (and All the Apps that Support It)
上記記事の内容を簡単にまとめると、
1. ユーザ名とパスワードは変わらず使える。 2. 連携アプリの設定を変える必要はない。 3. ブックマークレットとかブラウザ拡張 (extension) もそのまま使える。 4. API もそのまま使える。
という話です。 まぁ、投稿用の自作サービスを使っている身としては、ひと安心。 ところで、PC の Web ブラウザや iPhone アプリで Pocket にログインすると、 ・HomeFavoritesArchive という3種類のリストが見られます。以前の(Read It Later の)旧デザインでは、 ・UnreadRead の2種類だったので、ちょっと違う。 まぁ、"Favorites" はおいておくとして、一見すると、 Home ⇔ Unread Archive ⇔ Read と対応するように思えます。 ところが・・・・ 自作の投稿プログラムで "Read" リストに投げたはずのエントリが見つからない! "Home" リストにも "Archive" リストにも載ってない! ここ数週間のデータがロストしたかと思って、正直かなり焦りました。 結論して、"Read" リストは別物として存在していました。 Read It Later のときの "Read" リストの URL を直接指定すると Pocket の "Read" リスト にリダイレクトしてくれます。 現時点では Pocket に普通にログインしても "Read" リストへのリンクは見当たりません。 移行作業で混乱しているだけかと思われますが、ちょっと不親切な気がしないでもないです。 いや、本気で焦りましたから!! 最後に、Pocket の URL を整理しておきます: ・トップページログイン"Home" リスト"Favorites" リスト"Archive" リスト"Unread" リスト(旧デザイン) ※たぶん "Home" リストと同じ ・"Read" リスト(旧デザイン) ・データの export ※ HTML ファイルとしてダウンロードできる ご参考まで。 蛇足ですが、"Read" リストがいつまでサポートされるのかがちょっと心配ではあります。

« 2012年3月 | トップページ | 2012年7月 »