MATLAB: 用MATLAB发送邮件(以163邮箱为例)

MATLAB: 用MATLAB发送邮件(以163邮箱为例)

问题描述

有时我们运行一些耗时很长的程序,就让计算机自己跑,人走开了。这种情况下如果程序出错或者运行完毕,程序员不能及时获得通知。但是强大的MATLAB可以发送email,我们可以利用这个功能来提升开发体验。

邮箱设置

建议专门注册一个邮箱用于MATLAB发送邮件,方便和其他邮件区分,也比较安全。具体步骤如下:

  1. 注册一个邮箱,如mymatlab@hhh.com;
  2. 在网页端,开启SMTP服务,记录SMTP服务器地址,例如网易163邮箱的是smtp.163.com;
  3. 在MATLAB中配置邮箱账户:
% 账号设置
mail = 'mymatlab@hhh.com';  % ①邮箱地址
password = 'abcdefg'; % ②密码

% 服务器设置
setpref('Internet','E_mail',mail);
setpref('Internet','SMTP_Server','smtp.163.com'); % ③SMTP服务器
setpref('Internet','SMTP_Username',mail);
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');

也就是说,只有①②③三处需要改,其他都复制就行了。另外,需要注意的是,如果用163邮箱,那么代码中填写的密码不是原始密码,而是“客户端授权码”:

授权码是用于登录第三方邮件客户端的专用密码。
适用于登录以下服务: POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。

发送邮件

前面我们已经设置完毕,那么怎么发送邮件呢?
使用sendmai()函数。

% 举个例子,比如想把前面运行得到精确度数据发送给程序员
accuracy=0.888; 
% 收件人
receiver='myself@123.com'; 
% 邮件标题
mailtitle='pattern recognition';
% 邮件内容
mailcontent=['mission compeleted!  ',...
    'accuracy=',num2str(accuracy)];
% 发送
sendmail(receiver, mailtitle, mailcontent);

收到的邮件:
邮件效果图

更进一步

那么既然这个功能我们要经常使用,总不能每次都重新设置吧?不如把这些代码封装起来,打包成一个函数:

function mailme(mailtitle,mailcontent)
% 账号设置
mail = 'mymatlab@hhh.com';  % ①邮箱地址
password = 'abcdefg'; % ②密码

% 服务器设置
setpref('Internet','E_mail',mail);
setpref('Internet','SMTP_Server','smtp.163.com'); % ③SMTP服务器
setpref('Internet','SMTP_Username',mail);
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');
% 发送邮件
receiver='myself@123.com'; % ④我的收件邮箱
sendmail(receiver,mailtitle,mailcontent);
end

这样一来,需要发送邮件的时候,只要mailme(标题,内容)就行啦!

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值