通过Matlab发送邮件要注意的问题

背景:

有时候在实验室,通过MATLAB做一个计算或者仿真,需要花比较长的时间,比如十几个小时甚至几天。我们希望MATLAB跑完后,我们能够得到通知,或者能够了解到结果。 这个时候,可以设置在MATLAB跑完后,给我们发个邮件,并且把一些计算结果当做附件给我们发过来。如果手机绑定了邮箱,我们就可以立刻知道跑完了,并且大致了解结果。

一个小Demo

我做了一个小的demo来实现以上的需求。这个demo在MATLAB 2018b上做的,邮件发送使用的网易126邮箱。

demo功能介绍

在Simulink中建立了一个简单的模型(没有什么实际意义,仅仅用于展示)代表我们要做仿真计算的任务。 当这个仿真运行完成后,向我的邮箱发送一封邮件,把仿真结果作为正文内容发过来,附件为仿真结果的一张图形。 假设我的邮件地址为 whoispo@126.com ,当然这是一个假的地址 ?

准备工作

为了发邮件,我们需要上我们的126邮箱,对其进行一定的设置,才能让MATLAB把我们的邮件发送出去。虽然我只是以126为例,但是其他邮箱应该也有类似的设置方法。

  1. 开启SMTP服务
    在126邮箱中有一个【设置】选项
    在这里插入图片描述
    选择其中的【POP3/SMTP/IMAP】
    在这里插入图片描述
    然后选中 【POP3/SMTP服务】和【IMAP/SMTP】服务
    在这里插入图片描述记住这里的smtp地址,待会会用到
    记住这里的smtp地址,待会会用到

然后开启客户端授权密码,这个密码可以设置成与邮箱的密码不一样,主要用于像这种代发代收的客户端的,设置成不一样更加安全。通过MATLAB发送邮件,其实可以认为MATLAB也是一个客户端。
在这里插入图片描述
在这里插入图片描述
以上,就把邮箱的设置弄完了

Simulink模型

从一个正态分布生成器中产生数据,将数据的最大、最小值导出到maxValue, minValue,并且所有数据导出到value, 时间序列导出到time。
在这里插入图片描述

仿真脚本

sim('simple_model');

plot(time, value);

rlt_str = sprintf('Max=%.2f\nMin=%.2f\n', maxValue, minValue);
rlt_file = 'rlt.jpg';
saveas(gcf, rlt_file);
mail_rlt('Simulation Result', rlt_str, rlt_file);

其中的mail_rlt函数的代码如下

function mail_rlt(mailtitle,mailcontent,attached_file)
	receiver='tutor@mail.tsinghua.edu.cn';     % 对方的邮件地址
	sender = 'whoispo@126.com';    % 本人邮箱地址
	password = '123456';                               % 授权密码非登录密码
	smtp_addr = 'smtp.126.com'                    %smtp服务器地址,可以从邮箱配置中查到

	% 服务器设置
	setpref('Internet','E_mail',sender);
	setpref('Internet','SMTP_Server',smtp_addr); 
	setpref('Internet','SMTP_Username',sender);
	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');

	sendmail({sender, receiver},mailtitle,mailcontent, attached_file);   %为了避免126将此邮件识别为垃圾邮件(报错554 DT:SPM)发不出去

	fprintf('Send Successful\n');
end

这里要注意的一个地方,就是在发送时要把自己的邮件地址也放到收件人列表中,这样做可以避免网易邮箱把这封邮件误认为是垃圾邮件,从而拒绝,发不出去。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值