はじめまして、フリーランスのますみです!
『一人一人が自立・共存・革新している「クリエイターエコノミー」を創る。』というビジョンに向けて活動しています。
研究室などで深層学習などを用いたり、大量の生体情報を処理する際に、処理時間が膨大にかかると思います。そんな時に、処理が終わったのかを確認するために、Gmailで通知をする方法についてまとめました。
具体的には、処理が完了した時に、
- 完了したこと
- いつ完了したか (timestamp)
- 得られた結果 (attachment file)
を送信します。
方法
手順①:関数の作成 (sendMail.m
)
手順②:関数の実行 (main.m
)
手順③:Gmailの認証設定の変更
手順①:関数の作成 (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
最後に
いかがだったでしょうか?
この記事を通して、少しでもあなたの困りごとが解決したら嬉しいです^^
おまけ(お知らせ)
エンジニアの仲間(データサイエンティストも含む)を増やしたいため、公式LINEを始めました🎉
「一緒に仕事をしてくれる方」「友だちとして仲良くしてくれる方」は、友だち追加をしていただけますと嬉しいです!(仲良くなった人たちを集めて、「ボードゲーム会」や「ハッカソン」や「もくもく会」もやりたいなと考えています😆)
とはいえ、みなさんにもメリットがないと申し訳ないので、特典を用意しました!
友だち追加後に、アンケートに回答してくれた方へ「エンジニア図鑑(職種20選)」のPDFをお送りします◎