在前段时间使用shell和python发送邮件后,今天笔者在想经常使用的可视化监控LabVIEW的遇到报警信息时怎么发送一封告警邮件通知呢?
带着疑问,笔者直接在NI范例查找器里面搜索,居然直接由现成的例子,测试正常。LabVIEW太方便了,以后遇到监控的实时告警通知需求,就可以直接将这个案例封装成子函数调用,快速的完成监控信息通知。
界面如下。关于邮箱密码(专用验证码)以及SMTP服务器地址信息的获取,请参考笔者以前的文章。
案例包含三个方面的内容。
1、配置服务器-通过关闭句柄VI关闭现有的SMTP会话,然后使用打开句柄VI创建一个新的SMTP会话。 至此尚未建立服务器的实时连接。相反,会话将值保存以便将来连接至服务器。
2、发送邮件-使用设置收件人VI和设置消息VI的“文本”实例编辑电子邮件,然后使用发送EmailVI发送邮件。“发送”VI建立与服务器的连接、传输email,然后关闭服务器连接。该VI可在同一个SMTP会话中多次调用。 在同一个SMTP会话中调用时,后续调用VI编辑email将重写之前的值。
3、停止-停止执行主While循环。
上面的案例是在界面上通过按钮来操作的,做成子函数的话就不需要这样的功能,于是笔者将案例修改成数据流的类型,直接将参数做成接口。同时,增加了附件的选项,可以通过布尔变量来进行选择。收件人地址和附件是个数组,可以选择多个地址以及附件。
修改后测试结果如下。在测试时,邮件主题如果是中文的话,发送邮件后中文字符会变成???,无法识别。笔者将邮件主题内容转换为utf8格式再发送仍然识别不成功,暂时解决不了,只能用英语主题了,没啥影响。
网友评论