2013年5月22日水曜日

堀江貴文氏などのブロマガをKindleに自動でいれる方法

ニコニコのブロマガで堀江貴文氏や夏野剛氏のメルマガを購読しています。
メルマガなのでそのままメーラーで読んだり、Webから読んだりしています。
しかし、堀江氏のメルマガは特に長く、途中まで読んであとで続きを読もうとすると
スクロールしないといけなかったりして面倒です。
ブロマガはepubもダウンロード出来るのでiBooksで読めばいいのですが、、
いちいちダウンロードするというのがまた面倒で、、何回かやった後にやめて
しまいました。
あと、いまいち軽快じゃないし。

と、しばらくは諦めてブラウザで読んでいたのですがふと、send-to-kindleって
あったけど、あれどうなんだろうと。
ひょっとしてメールをそのまま転送したらKindleに入るのでは?と思ってやって
みたのですが、添付ファイルを読み込む仕様で、メールそのものは入りません。
じゃあ、ということで、一旦メールサーバでメールを受け、それをテキストファイルに
して、それを添付後Kindleに送るスクリプトを作ってみました。

最近PHPを使っているのでスクリプトはPHPで作成。
前準備としてメールサーバ側で受信時にPHPスクリプトにメールを渡す設定が
必要です。
僕はさくらのレンタルサーバーを使っていますが、Mailboxの.mailfilterを
書き換えてパイプで渡すようにしてみました。


PHPスクリプトですが、以下のように書いてみました。


#!/usr/local/bin/php

<?php
require("PHPMailer/class.phpmailer.php");

$file = "mail.txt";
$content = null;
$fp=fopen("php://stdin",'r') or die('File Open Error');

while( !feof($fp) ){
$content .= fgets( $fp ,1024);
}

file_put_contents($file, $content);


mb_language("japanese");
mb_internal_encoding("UTF-8");

$to = "xxx@kindle.com";
$subject = "test";
$body="test";
$from = "xxx@xxx.xxx"; //送り主

$mail = new PHPMailer();
$mail->CharSet = "iso-2022-jp";
$mail->Encoding = "7bit";

$mail->AddAddress($to);
$mail->From = $from;
$mail->FromName = mb_encode_mimeheader(mb_convert_encoding($fromname,"JIS","UTF-8"));
$mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","UTF-8"));
$mail->Body = mb_convert_encoding($body,"JIS","UTF-8");

//添付ファイル追加
$mail->AddAttachment($file);
$mail->Send();
?>


ファイルを添付して送信するのに、PHPMailerを使わせて頂きました。
単に来たメールをそのままテキスト保存し、添付して送信しているだけです。
さらに手を入れるなら本文だけにしたりファイル名を元メールのSubjectにしたりとか
いろいろ考えられますが、、面倒だったのでこれで完了です。
とにかくKindleで読めればいいので。
メールヘッダーとかごっちゃり入りますが、気にしない。

やっぱりKindleだと割とサクサク読めます。
ただ、URLがページの一番上とか下に来た時に開くことができない時があります。。
ちょっと微妙です。。(iOS版です)
でもURLはアプリ内ブラウザで開けるのでいちいちアプリが切り替わらなくて良いです。


0 件のコメント:

コメントを投稿