Matlab 程序結束后發送短信或者郵件


近期,在服務器上運行matlab程序,由於數據比較多,程序比較復雜,運行時間不固定,而且需要經常改變參數,重復運行幾次,所以不清楚程序何時結束,以便於修改參數,繼續運行。開始有時間就看看程序是否運行結束,次數多了后,就感覺分心,很不方便。

為了在第一時間知道程序運行結束,就想到了讓matlab在運行結束后,立刻通知我,這樣就方便我立刻修改參數,繼續運行。經過思考,百度或者google,嘗試,這里介紹兩種可行的方法:發送短信和發送有郵件。

1. 發送短信

由於以前有過在電腦上向手機發送短信的編程實現,所以在回顧自己的文章《 C#簡單實現發送手機短信 》,再結合matlab中web的使用,實現了用中國網建提供的SMS短信平台發送短信,就像我在自己文章提到的一樣,用完幾條免費的后,就要收費了。(順便提一句,網上找到用開放飛信平台的API發送的,但是現在好像不能用了,不知道Why。)

用基於SMS平台發送短信,非常簡單,一句命令的事,可以直接加在代碼的最后:

web http://utf8.sms.webchinese.cn/?Uid=本站用戶名&Key=接口安全密碼&smsMob=手機號碼&smsText=短信內容

得先注冊網建,然后按上面的修改就可以了。

2. 發送郵件

如果感覺發送短信,太麻煩,需要注冊之類的,可以選擇發送郵件。像網易郵件,gmail郵件等,都可以。

在使用郵件之前,首先要設置郵箱,開啟stmp和pop3服務器。例如下列圖片:

然后,在matlab命令窗口(command window),輸入: doc sendmail,函數介紹如下:

MailAddress = 'XXXXXXXX@126.com';%手機郵箱地址 
password = 'XXXX';  %密碼 
setpref('Internet','E_mail',MailAddress);%照抄吧 
setpref('Internet','SMTP_Server','smtp.126.com');%SMTP服務器 
setpref('Internet','SMTP_Username',MailAddress);%照抄 
setpref('Internet','SMTP_Password',password);%照抄 
props = java.lang.System.getProperties;%照抄 
props.setProperty('mail.smtp.auth','true');%照抄 
sendmail(MailAddress,subject,content);%提醒的是自己,直接用自己的手機郵箱 
subject和content就是郵件的主題和內容,發過E-mail的都知道吧。 

  為了以后方便使用,可以包裝成一個函數:

function mailTome(subject,content) 
MailAddress = 'XXXXXX@126.com'; 
password = 'X';   
setpref('Internet','E_mail',MailAddress); 
setpref('Internet','SMTP_Server','smtp.126.com'); 
setpref('Internet','SMTP_Username',MailAddress); 
setpref('Internet','SMTP_Password',password); 
props = java.lang.System.getProperties; 
props.setProperty('mail.smtp.auth','true'); 
sendmail('X',subject,content); 
end

  得到mail2me這個函數之后,只要在程序后面加上一句類似的: 

mailTome('Program Over','**** Program has finished');

真的沒有問題了么?程序員的思想總是接近完備的。 
函數中存在個人隱私(手機號碼和密碼),如果被人看到然后用來捉弄你就不好了。 MATLAB也是完備的,她提供了一種很好的內容保護機制: protected-code。  
Command Window 鍵入: 

pcode mailTome 

  然后刪除mail2me.m。在此之后,再次輸入: 

mailTome('Is OK?','見證奇跡的時刻到了'); 

  從此,再也不會有第二個人知道你這個函數里面的內容了.

第二種方法來自於網上的查找。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM