LoginSignup
12
6

More than 3 years have passed since last update.

matlabの計算完了通知メール送信(mailsend)

Last updated at Posted at 2020-09-29

Try関数中の 何らかのプログラム (program)を実行し、エラーがなければ、実行完了メール。
エラーを取得すれば、構造体MEが生成され、エラー通知とエラー内容メールを送信するコード

 <プログラム使用例>

clear  %初期化
try
 program %処理するプログラム
catch ME %エラー内容を取得
end
mailsend; %本プログラム

メインコード (mailsend.m )

% Gmail / Yahoo の送信アドレス・サーバー設定
% 現時点でYahooメールからの送信を用いているため,Gmailの設定は未使用。

% Define these variables appropriately:
% 送信元のアドレス,パスワード
Mail.sendAdd = '________@yahoo.co.jp'; %Your Yahoo email address
Mail.sendPassword = 'password';  %Your Yahoo password
% Yahoo サーバー
setpref('Internet','SMTP_Server','smtp.mail.yahoo.co.jp');
% Gmailサーバーを使用する場合は以下のコメントを外す。
%setpref('Internet','SMTP_Server','smtp.gmail.com');

%送信元アドレス設定
%SMTP設定
setpref('Internet','E_mail',Mail.sendAdd);
setpref('Internet','SMTP_Username',Mail.sendAdd);
setpref('Internet','SMTP_Password',Mail.sendPassword);

%Java設定
Mail.Props = java.lang.System.getProperties;
Mail.Props.setProperty('mail.smtp.auth','true');
Mail.Props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl.SSLSocketFactory');
Mail.Props.setProperty('mail.smtp.socketFactory.port','465');

%送信先情報の指定
%メール送信先・パソコン名の設定 

%計算しているパソコン名の取得 (例: Mail.namePC='XXX')
%% Mail_contents
[~,Mail.namePC]=dos('hostname'); %PC名の取得

%メール送信先の指定
%Mail.receiveAddに指定されたアドレスにメール送信
Mail.receiveAdd='xxxxxxxxxx@______.jp'; %メールの送り先

%メール本文   
Mail.isME = exist('ME','var');              %エラー情報を取得
if Mail.isME ==1 %1:エラーがあるかどうかを判断

%エラーがあれば、メールのタイトルにエラー通知(Tmp.mailTitle)、内容にエラー文(Mail.errorMsg)を含むメッセージ(Tmp.mailMessage)を指定 
   Mail.errorMsg=ME.message; %エラー文を取得
   Mail.mailTitle=strcat(Mail.namePC,':!Calculation Error'); %エラーメールタイトル
   Mail.mailMessage=strcat('エラーメッセージ:',Mail.errorMsg); %エラーメッセージ
else    

%エラーが無ければ、メールのタイトルに計算完了通知(Tmp.mailTitle)、内容にメッセージ(Tmp.mailMessage)を指定             
   Mail.mailTitle=strcat(Mail.namePC,':Finish Calculation');   
   Mail.mailMessage=strcat('Finished Time (DD-MMM-YYYY hh:mm:ss):',datestr(now));
end

%メールの送信
%送信先アドレス(Mail.receiveAdd)にタイトル(Tmp.mailTitle)、メール文章(Tmp.mailMessage)のメールを送信
sendmail(Mail.receiveAdd,Mail.mailTitle,Mail.mailMessage); %メール送信
12
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
6