2010-04-19

SMAILを使ってX-Finder上からファイルをGmailにバックアップ

自分のGmailアカウントに添付ファイルとしてファイルを送りつけておくのは、ちょっとしたファイルのちょっとしたバックアップには最適。

fenrirからGmailにファイル添付して送信する方法については、ダイアリーの方で書いたことがあるが、ファイルを扱うんだからファイラーからやった方がいいと思い、X-Finderの右クリックからできるようにした。

SMAILの準備

まず、SMAILというコマンドライン型メール送信ソフトをインストール。適当なところに展開するだけのレジストリ不使用ソフト。

smail.exeを実行してサーバ等の設定。

  • SMTPポート番号:25
  • SMTP認証:AUTH PLAIN
  • SMTPユーザID:GmailアカウントID(@の左側のみ)
  • SMTPパスワード:Gmailのパスワード(設定保存後に暗号化される)
  • SMTP/SSL暗号化:チェックを入れる
    • ポート番号:465

X-Finderの設定

X-Finderのビルトインコマンドだけでもできることはできるんだけど、ビルトインコマンドだと、選択ファイルが複数の場合にパスが半角スペース区切りになってしまってSMAILの書式に合わない。つまり添付できるファイルが1個に限定される。

なので、X-Finderの最新(人柱)版で実装されたスクリプト機能を使って、選択ファイルの列挙をカンマ区切りにする。

以下、ランチャの「パス」欄の内容。

Script:JScript
Sel = WScript.Col(WScript.Env('Selected'));
Arr = new Array();
for (i = 0; i < Sel.Count; i++) {
 Arr.push('"' + Sel.Item(i) + '"');
}
WScript.Env('Att', Arr.join(','));
WScript.Env('Num', Arr.length);
Input = WScript.Exec('Input:"Gmailにバックアップ","選択中の%Num%個のファイルをGmailにバックアップします。","メールの件名を入力して下さい","[Backup]%FocusedName%"');
if (Input) {
 WScript.Exec('SW:0:%X-Finder%..\\smail\\smail.exe -hsmtp.gmail.com -fuser@gmail.com user@gmail.com -s"%InputData%" -a%Att%');
}

動作は実行。user@gmail.comは自分のGmailアドレスに書き換える。

スクリプトは素人なので、for文でコレクションに格納したパス群を配列に入れ直し、カンマ区切りで結合するという遠回りをしている。もっとうまくできそうだけど分からないのでやらない。

送信前に件名入力ダイアログを表示する。その時のデフォルトは"[Backup]フォーカス中のファイル名"にした。問題なのは、ここで入力をキャンセルしてもメール送信自体はストップしないこと。X-Finderのビルトインコマンドだけならキャンセルされるんだけど、ここではJScriptの中で使ってるのでそうならない。しかもJScriptにはこういう入力ダイアログを出す機能が無いらしい。X-Finder11-6-44からWScript.Exec内でのInput:にtrue/falseが返るようになったので、合わせて修正。

ちなみに、SW:0:でプロンプト画面を表示しないから、送信に失敗してても分からない。

他にもGmailのサイズ上限である25MBを超える場合は警告を出すとか、添付すると弾かれる拡張子(exeやzip)を含む場合に通知するとか、やろうと思えば色々できる。面倒だし必要ないからやらないけど。

GHDグラミーにオオミジンコをやってみた

昨日今日と晴れて暖かかったおかげで、ミジンコがかなり増えていた。

そこで増えてきたオオミジンコをたっぷりとGHDグラミー3匹入った梅酒ボトルに入れてやったら、腹一杯になったせいかオオミジンコが結構生き残ってる。ボトルの大きさと生体の数からして、ずっとミジンコが増え続けるのは不可能だと思うけど、それにしてもミジンコが食い尽くされずに残ってる状況って珍しい。

ところで、今日はエビ入り極小プラケース(500mlくらい)を窓際に置いてるのを忘れてて、危うく茹で殺してしまうところだった。夏なら確実に死んでたな。気をつけよう。