Org=>GmailSMTPでウマー

OrgをGmailに送りたい。

1.EmacsのバッチでOrgのTODOとかを出力

utf8だと文字化けした。
生の.emacs読み込ませると遅いのでorgバッチ用のorgだけ読み込む.emacsを作ると良いですね。
文字化け回避について
http://d.hatena.ne.jp/tanitsu/20090311/1236762879

#!/bin/zsh
emacs --batch --unibyte --load ~/emacsorg --eval "(let ((buffer-file-coding-system 'raw-text))  (org-batch-agenda \"t\"))" > ~/tmp/todo.txt
emacs --batch --unibyte --load ~/emacsorg --eval "(let ((buffer-file-coding-system 'raw-text))  (org-batch-agenda \"a\"))" > ~/tmp/agenda.txt

2.GmailにGmailSMTPで送信部分

作ったファイルをrubyで送信。
メール送信について
http://d.hatena.ne.jp/unageanu/20090429/1241001029

#! /opt/local/bin/ruby 
# -*- coding: utf-8 -*-
def myReadFile(filename)
	buf = "myreadfile"
	begin
		File.open(filename,'r'){ |io|
			buf =  io.read 
		}
	rescue
    puts "読めませんでしたよー"
	end
	return buf
end

#gem install tmail tlsmail (1.8ねー)
require 'rubygems'
require 'tmail'
require "tlsmail"

def myMakeMail(to,sbj,body)
	# tmailでメールを作成
	mail = TMail::Mail.new
	mail.to = to
	mail.from = 'fromなメールアドレス'
	mail.subject = sbj
	mail.date = Time.now
	mail.mime_version = '1.0'
#	mail.set_content_type 'text', 'plain', {'charset'=>'iso-2022-jp'}
	mail.set_content_type 'text', 'plain', {'charset'=>'utf-8'}
	mail.body = body
	puts mail.to_s if $DEBUG # 作成されるメールを確認したい場合はこちら。
	return mail
end

def mySendMail(c,mail)
	# メールはNet::SMTPで送信。
	# gmailはTLSによる暗号化が必要なので、tlsmailを利用する。
	# また、認証も必須。
	Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
	Net::SMTP.start( c[:server],  c[:port], c[:domain], c[:user], c[:pass],c[:auth]){ |smtp| 
		smtp.sendmail(mail.encoded, mail.from, mail.to) 
	}
end

gmailconfig = {
	:server => 'smtp.gmail.com',
	:port => 587,
	:domain => 'localhost.localdomain',
	:user => 'あなたのメアド',
	:pass => 'パスワード',
	:auth => 'plain'
}

buftodo = myReadFile('/Users/seijiro/tmp/todo.txt')
bufagenda = myReadFile('/Users/seijiro/tmp/agenda.txt')
puts buftodo if $DEBUG
puts bufagenda if $DEBUG

mail = myMakeMail('Toなメールアドレス','todo and agenda',buftodo + bufagenda)
mySendMail(gmailconfig,mail)

3.cron用にまとめたスクリプト

以下を時間"*/3"とかでcronで回しましょう。
3時間に一回メールが飛んでくるよ!iphoneで確認しよう!

#!/bin/zsh
/Users/seijiro/scripts/orgbatch
/opt/local/bin/ruby /Users/seijiro/scripts/readorg.rb
growlnotify -t "org2gmail" -m "done"

感想

EverNoteの人とかがいつでも!どこでも!とかって嬉しそうにおっしゃっておられるけれどアレはインターフェース弱いだろ。。。とあちらには攻め込めない。
Emacsでやる意味というのは、タスク管理などと言うめんどくさい作業そのものが
Emacsでやることによりひたすら楽しい作業に変わるということなのです。
楽しくないと継続しないんだぜ。

感想2

webサーバー持ってるならemacsからhtml形式で出力したものを公開しても良いねぇ。。
カレンダー機能が弱いなぁ。
http://d.hatena.ne.jp/t0m0_tomo/20100103/1262537012
を試したけど.htaccessのところで頓挫。生成物をgcalが読み込んでくれね。
lightningはよみこんでくれたのでまぁまぁ。