Matlab如何设置程序运行结束后自动发送邮件提醒?
Matlab程序运行完成自动发邮件提醒实现方案
前置操作
在编写代码前,需要先开启你发件邮箱的SMTP服务,获取邮箱官方提供的SMTP授权码(注意不是邮箱登录密码,授权码可在邮箱账户安全设置页开启SMTP后获取)。
完整可运行代码
%% 1. 配置基础参数 % 发件人邮箱 sender_mail = 'your_email@xxx.com'; % SMTP授权码(邮箱开启SMTP服务时获取) auth_code = 'your_smtp_auth_code'; % 收件人邮箱,可填多个用元组包裹,例如 {'receiver1@xx.com','receiver2@xx.com'} receiver_mail = 'receiver_email@xxx.com'; % SMTP服务器地址:QQ邮箱为smtp.qq.com,163邮箱为smtp.163.com,企业邮箱联系管理员获取 smtp_server = 'smtp.xxx.com'; % SMTP端口,绝大多数支持SSL的公共邮箱为465端口 smtp_port = 465; %% 2. 配置Matlab邮件环境 setpref('Internet','E_mail',sender_mail); setpref('Internet','SMTP_Server',smtp_server); setpref('Internet','SMTP_Username',sender_mail); setpref('Internet','SMTP_Password',auth_code); props = java.lang.System.getProperties; props.setProperty('mail.smtp.auth','true'); props.setProperty('mail.smtp.port',num2str(smtp_port)); % 开启SSL加密,当前绝大多数公共邮箱要求强制开启 props.setProperty('mail.smtp.socketFactory.class','javax.net.ssl.SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.port',num2str(smtp_port)); %% 3. 构造邮件内容并发送 % 邮件主题 mail_subject = 'Matlab程序运行完成提醒'; % 邮件正文,可自定义添加运行耗时、结果参数等信息,程序开头加tic即可用toc统计总耗时 mail_content = { '您的Matlab程序已运行完成', ['运行总耗时:',num2str(toc),'秒'], '可前往Matlab环境查看完整运行结果' }; % 发送邮件,如需添加附件,在最后加附件路径数组即可,示例:sendmail(receiver_mail, mail_subject, mail_content, {'D:\result.xlsx','D:\plot.png'}) sendmail(receiver_mail, mail_subject, mail_content);
使用说明
- 把上述代码粘贴到你自己的Matlab程序末尾即可,程序运行到该段代码时会自动触发邮件发送
- 可自由修改邮件正文内容,插入程序运行输出的核心指标、结果数值等自定义信息
- 支持添加任意格式的运行结果文件作为邮件附件
常见问题排查
- 鉴权失败提示:检查SMTP授权码是否输入正确,发件邮箱的SMTP服务是否正常开启
- 连接服务器失败提示:检查SMTP服务器地址、端口是否匹配对应邮箱要求,关闭Matlab代理,检查本地防火墙是否拦截端口连接
- 邮件被判定为垃圾邮件:可在收件邮箱中将发件地址加入白名单
内容的提问来源于stack exchange,提问作者goodgest
相关产品推荐
相关产品推荐

