研究室などで深層学習などを用いたり、大量の生体情報を処理する際に、処理時間が膨大にかかると思います。そんな時に、処理が終わったのかを確認するために、Gmailで通知をする方法についてまとめました。
具体的には、処理が完了した時に、
- 完了したこと
- いつ完了したか (timestamp)
- 得られた結果 (attachment file)
を送信します。
方法
手順①:関数の作成 (sendMail.m
)
手順②:関数の実行 (main.m
)
手順③:Gmailの認証設定の変更
手順①:関数の作成 (sendMail.m)
以下の関数 (sendMail.m
) を作成します。
sendMail.m
% ===== Info =====
% Function for Send Mail
% URL: https://www.umi-mori.jp/article/matlab/send_mail.php% Github: https://github.com/Masumi-M/SendMail_matlab% ===== Main =====
function [] = sendMail(attachmentFilePath, attachmentFileName)
email = 'send_from@gmail.com';
password = 'send_from_password';
recipients = 'send_to@gmail.com';
setpref('Internet', 'E_mail', email);
setpref('Internet', 'SMTP_Server', 'smtp.gmail.com');
setpref('Internet', 'SMTP_Username', email);
setpref('Internet', 'SMTP_Password', password);
props = java.lang.System.getProperties;
props.setProperty('mail.smtp.auth','true');
props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl.SSLSocketFactory');
props.setProperty('mail.smtp.socketFactory.port','465'); %Socket for SSL (465)
subject = 'Matlab Notification.';
message_line1 = strcat('Matlab PGM Ended.');
message_line2 = strcat('Attachment: [ ', char(attachmentFileName), ' ]');
message_line3 = strcat('Datetime: [ ', datestr(datetime('now','TimeZone','local','Format','d-MMM-y HH:mm:ss Z')), ' ]');
sendmail(recipients, subject, [message_line1 10 message_line2 10 message_line3], {char(attachmentFilePath)});
return
end
この時、以下の3行を書き換えます。
email = 'send_from@gmail.com';
password = 'send_from_password';
recipients = 'send_to@gmail.com';
変数 | 概要 |
---|---|
メールの送信元のアドレス (From) | |
password | メールの送信元のパスワード (From) |
recipitents | メールの宛先のアドレス (To) |
手順②:関数の実行 (main.m)
以下のようなスクリプトで sendMail.m
関数を実行します。
attachmentFilePath = './OutputFigure/t-value.png';
attachmentFileName = 't-value.png';
sendMail(attachmentFilePath, attachmentFileName);
Figureのpathと、file名を引数として渡しています。
手順③:Gmailの認証設定の変更
このまま実行すると、以下のようにブロックされてしまいます。

そのため、「安全性の低いアプリのアクセス」を許可すると、送れるようになります。

結果:sampleDataの送信

デモデータ
以下のGithubのリポジトリにサンプル用のデモデータを用意しました。
Github : SendMail_matlab – Github