Hatena::ブログ(Diary)

備忘録とか あと あれとか それとか

2012-01-31

Matlab/Octaveからメールを送る

Matlabにはsendmailというコマンドがあって,Matlabからメールを送信することができる.

アドレス リストに電子メールを送信 - MATLAB

初心者によるMATLABメモ | sendmail

しかし,Octaveにこの機能は無い.

なのでPython + Gmail + systemコマンドを使ってつくることにする.

Windowsじゃ使えないけどね.

Pythonを使ったメール送信 via Gmail

以下からZIPファイルをダウンロード

gmailsend.py, send_notify.py, & mail_notify.m

解凍後,send_notify.pyの50行目

sg = sendGmail('utf-8', subject, body, 'xxx@gmail.com', to_addr, 'xxx@gmail.com', 'xxxxxxx')

という感じに書き換える.

これらの解説は,

Pythonを使ってGmail経由でメールを送る

にあります.

gmailsend.pyとsend_notify.pyを適当なフォルダに移動(これ以降の例だと,~/scripts/notify_py).

メールを送信するMatlab/Octaveスクリプト

mail_notify.mを呼び出すことでメールを送信する.

function status = mail_notify(ads, sbj, body)

input = '';
if nargin > 0
	input = sprintf('%s "%s"', input, ads);
end

if nargin > 1
	input = sprintf('%s "%s"', input, sbj);
end

if nargin > 2
	input = sprintf('%s "%s"', input, body);
end

cmd = sprintf('python ~/scripts/notify_py/send_notify.py %s', input);
[output status] = system(cmd);
disp(status)

使い方は,

>> mail_notify_py('xxx@xxx.xx', 'matlab/octave', 'scripts finished');

実行すると

  • 宛先: xxx@xxx.xx
  • 件名: [Nortification] matlab/octave 01/31/12-13:19:10
  • 送信元: xxx@gmail.com
  • 本文:

scripts finished

From hostname.com

/dev/pts/12

/hoge/users/dir1/dir2

01/31/12-13:19:10

といった感じのメールがくる.

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hgshrs/20120131/1328000654
リンク元