Linux的Sendmail邮件发送涉及到DNS检查等因素,很有可能被认为是垃圾邮件,所以我推荐使用Matlab来完成发送计算报告的方式,当然也只能做到发送个短消息吧。当你使用Comsol
with matlab时,可以通过这个脚本实现模型计算完成后发送结果文件到邮箱哦。
以新浪邮箱为例,MATLAB的Sendmail只需要知道邮箱的SMTP地址、用户名、密码即可实现发送功能。
推荐建立一个function存储这些配置信息。如果担心用户名密码泄露的话,可以参考Matlab编译脚本文件,对脚本进行加密。本文以明文为例:
function mlsendmail
% SMTP configure for my mail;
myaddress = 'tianleshu@sina.cn'; %输入邮箱地址
mypassword =
'*********'; %输入邮箱密码
mailsmtp =
'smtp.sina.cn' %输入邮箱SMTP服务器地址
%下面的不要改
setpref('Internet','E_mail',myaddress);
setpref('Internet','SMTP_Server',mailsmtp); setpref('Internet','SMTP_Username',myaddress);
setpref('Internet','SMTP_Password',mypassword);
props = java.lang.System.getProperties;
props.setProperty('mail.smtp.auth','true');
% 脚本结束
配置好mlsendmail后,便可以使用Matlab的Sendmail了。
首先运行mlsendmail,将环境变量配置好,注意每次启动MATLAB都要启动这个脚本,因为Matlab退出后,这些变量都被销毁了。采用function写这个mlsendmail的好处就是函数运行后,这些变量名都是局部变量,函数运行结束后销毁,但是环境已经配置好了。
测试下:
语法为:
sendmail(recipients, subject, message, attachments)
收件人 主题 消息 附件
比如:
sendmail('someone@sina.cn' ,
'TestMessageSubject', 'This is a test
message','{'attach1.doc','attach2.doc'}');
这样收到的邮件主题为TestMessageSubject,内容为:This is a test
message,附件为当前工作目录下的两个doc文件,这里可以用相对或绝对路径。
mxio
2014.12.26