ホーム > Tech > Network

Networkのアーカイブ

kindle3 で無料ニュース配信をする(さくらインターネット編)その1

Kindleには、対応フォーマットを username@kindle.comに添付メールで送付すると、Kindleに自動配信してくれるという機能がある。しかし、有償サービスとなっている。

3G回線での配信がされないが、free.kindle.comというWifiでのみ対応の無料サービスのほうを利用する。(有料サービスは、3G回線経由でも受信可能)

この機能を利用すれば、Web上でコンテンツを集めてメールで送付することで、定期的にコンテンツを配信するという、有料のニュース配信サービスと似たようなことが可能となる。

レンタルサーバ等でその仕組みを動くようにすれば、朝おきてKindleを起動しておけば自宅のWifi経由でコンテンツが自動更新される筈だ。

当然同じことを考える人はたくさんいるだろうと思ったが、ズバリな運用方法を書いたページが見つからないので、備忘録としてメモしておく。

配信するコンテンツの選択

配信コンテンツを1から自分で準備するのはいきなりでは敷居が高いので、すでにmobiで配布しているサイトを利用することに今回はする。

上記のサイトで、いくつかのニュース・サイトのmobiファイルが紹介されている。参考までに。

事前に確認しておくこと

自分がハマったところ。

受信用のメールアドレスの確認。username@kindle.com以外になっている可能性がある。とくに複数のKindleを持っている場合(自分は初期不良で交換したせいでそうなっていた)、2台目以降は、username_xx@kindle.comのように何かしら数字が付与されて設定されていると思われる。

確認は、Kindleのmenuから可能。変更したい場合は、Amazon.comにログインしmanaged kindleから可能。変更すると(無線をONにしていれば)ほどなくKindle側にも反映されるようだ。

送信元許可リストの確認。初期設定では、amazon.comのアカウント取得時に指定したアドレスのみである。利用したいメールサーバのドメイン(もしくはアドレス)を追加しておく。(さくらであれば、sakura.ne.jp等)

とりあえず試しにベタで送ってみた

cd /home/xxx/kindlewk
wget http://dogear.mobi/feed/xyz.mobi
uuencode /home/xxx/kindlewk/xyz.mobi xyz.mobi | mail -s ToKindle username@free.kindle.com

uuencodeで添付したファイルは、残念ながらkindleでは添付ファイルとして認識してくれないようだ。以下のようなエラーメールがkindleより届いた。

Dear Customer, 

Your message to username@free.kindle.com, sent at 02:59 PM on Mon, Jan 10, 2011 GMT did not include any attached documents or image files.
・
・

BASE64でエンコードしてみる

gmailから作成したファイルは、ちゃんと配信されるのでbase64で送信する方法を試してみた。

当初計画より大げさになってしまったが、メールヘッダを作成してsendmailコマンドで送るスクリプトを組む。参考にしたのは下記のサイト。

シェルスクリプトで添付ファイルつきのメールを送信 – pipi_oneの日記

#!/bin/sh

bd=`date +"%Y%m%d%H%M%S"`
fname=$1

header()
{
echo "MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=\"${bd}\"
From:xxx@www565.sakura.ne.jp
To:xxxx@free.kindle.com
Subject:ToKindle

--${bd}
Content-Type: text/plain; charset=\"ISO-2022-JP\"

kindle

--${bd}
Content-Type: application/octet-stream; name=\"${fname}\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"${fname}\"
\n"
uuencode -m  ${fname} ${fname}
echo ""
echo "--${bd}--"
}

header | sendmail -f xxxx@www565.sakura.ne.jp xxxxx@free.kindle.com

exit

上記シェルだとmobi形式はkindle.comには届いているがサポートしていない形式だというようなエラーが帰ってくる。

受信側(kindle.com)のエラーログを確認できないため、切り分けが進まない。

perlモジュールの利用

しょうがないので、妥当なメールライブラリを使う方式に変更した。

下記のサイトのコードがほぼそのまま流用できる。感謝。

GmailのSMTPを利用してPerlからメール送信(添付ファイル付) – memo.mzt
以下のポイントをもとに一部改造を実施する。

  • 起動引数によって、添付ファイルを変更できるようにする。
  • debugフラグを外す
  • bccなど、不要なヘッダを外す

gmailの場合は、SSLを使う必要があるようなので、net::smtp::sslなど追加でインストールの必要なモジュールがあるので、注意。root権限がないので、ユーザーディレクトリ内にライブラリをインストールする必要がある。

さくらインターネットでの手順は、下記を参考に。

さくらインターネットでのCPAN導入手順を紹介しているサイトはいくつかあるが、どうもそのままではうまく動かないことが多い模様。

小粋空間: Authen::Captcha をインストールして Captcha Plugin を利用する(CPAN による perl モジュールのインストール)

cron用のシェル作成

さくらのコントロールパネルから、以下のようなシェルスクリプトを登録しておく。そんなにラグはないので、起床時間の少し前に設定しておく。

#!/bin/sh
cd /home/xxx/kindlewk
/usr/bin/wget http://xxxx/xxx.mobi
/usr/bin/perl mailsend /home/xxx/kindlewk/xxx.mobi

以上。次回は、配信コンテンツを自作する手順を書きたい。

gmailアクセスを会社から利用し続けるための方法

世知辛い…

 
弊社でもgmailがアクセス規制対象になってしまったので、緊急用に穴をあけてみよう。

今回はLunarNight Laboratoryで公開されているweb proxy3をsakuraのレンタルサーバに設置し、コンテンツフィルタリングを回避してみる。

自宅サーバや管理権限をもっているレンタルサーバを使えばSSL-VPNで何とでもなるのだけど、現在借りているデーモン起動できないレンタルサーバ内で手軽にやってみようという趣旨である。

続きを読む

1 2

ホーム > Tech > Network

RSS ntoh-Twitter
RSS aquaqu-Twitter
アクセスの多いページ

ページの上部に戻る