追加:そしてQuicksilverから
コード修正と追加:おまけ2(別のやり方)
Gmailを使ってGTD的なことをやってるから、速攻簡単に題名だけのメールを自分宛に送れないかなーと思ってやってみた。
インスコ
macportsで『py25-socket-ssl』 をインストールしておく。
(入れないと『'module' object has no attribute 'ssl'』エラーになる)
sudo port install py25-socket-ssl
2010-09-10:追記
MacOSX10.6 + pytyon2.6 にしたら py26-socket-ssl が無いので、試しにpy26-opensslをインストールしたら動いた。
sudo port install py26-openssl
コード
参考サイトからコピペとかしつつ多少変更。
oneLineGmail.py
#!/usr/bin/env python # *-# -*- coding: utf-8 -*- import sys import smtplib from email.MIMEText import MIMEText from email.Utils import formatdate login_name = "hoge@gmail.com" login_pass = "your_password" from_address = "hoge@gmail.com" to_address = "hoge@gmail.com" def send_one_line_gmail(subject): body = "-" msg = MIMEText(body) msg['Subject'] = subject msg['From'] = from_address msg['To'] = to_address msg['Date'] = formatdate() s = smtplib.SMTP('smtp.gmail.com', 587) s.ehlo() s.starttls() s.ehlo() s.login(login_name, login_pass) s.sendmail(from_address, [to_address], msg.as_string()) s.quit() if __name__ == '__main__': arg = sys.argv if 2 <= len(arg): subject = " ".join(sys.argv[1:]) #print subject #test send_one_line_gmail(subject) print "DONE!" else: print "non subject!"
使い方
1.login_name, login_pass, from_address, to_address を自分のものに書き換える。
2.oneLineGmail.pyとか名前にして、シェルから
python oneLineGmail.py ほげほげ
とかやると題名が「ほげほげ」のメールが届くはず。
(※OSX10.4のターミルで実行すると、行頭が漢字のとき文字化けする?(´・ω・`))
おまけ
どこからでも実行できるように
『/opt/local/bin』に置いてChange modeしとくと、『oneLineGmail.py ほげほげ』で送れるから便利かも。
sudo ln -s ~/oneLineGmail.py /opt/local/bin/oneLineGmail.py
そしてQuicksilverから
設定のPlub-ins『Terminal Module』を使えるようにしておく
- Quicksilverから1stPaneでピリオド(.)押して『oneLineGmail.py ふがふが』とかコマンドいれる。
- 2ndPaneで『Run a Text command in Terminal』を選ぶ
するとターミナル開いて実行されるはず。
(参考:わかばマークのMacの備忘録 : Quicksilver Plug-in/ Terminal Module)
おまけ2(別のやり方)
もっと簡単設定で「todo ほげほげりん」とかで送ってみる
設定は.bashrcとかに
alias todo="~/oneLineGmail.py"
とか書くだけ。
あとはターミナルから
todo ほげほげりん
で実行すると、題名が「ほげほげりん」のメールが届くはず