処理完了後にG-Mailで通知する方法【MATLAB】

研究室などで深層学習などを用いたり、大量の生体情報を処理する際に、処理時間が膨大にかかると思います。そんな時に、処理が終わったのかを確認するために、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';
変数概要
emailメールの送信元のアドレス (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の認証設定の変更

このまま実行すると、以下のようにブロックされてしまいます。

blockImage

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

security

結果:sampleDataの送信

sampleData_result

デモデータ

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

Github : SendMail_matlab – Github

最後に

いかがだったでしょうか?

この記事を通して、少しでも皆さんの分析の行程が効率化されたら嬉しいです。

この他にも、Twitterにて「データサイエンティスト / エンジニアに役立つ情報を発信中」です。ご興味があれば、ぜひフォローお待ちしております。