在近期项目完成后,有遇到情况:类似于语音报警后,中控室人员未及时报告给我们造成了事件的危害升级,以及造成很不好的影响。针对这个情况特此添加语音报警后,自动发送邮件提醒,完善现有的报警机制。

1.函数编写(选自网友脚本)

  1. Option Explicit
  2. '需要引用 Microsoft CDO for Windows 2000 Library和 Microsoft ActiveX Data Objects 2.5 Library
  3. Public Function SendMail(ByVal strFrom As String, _
  4. ByVal strTo As String, _
  5. ByVal strSubject As String, _
  6. ByVal strMailText As String, _
  7. Optional ByVal strCc As String = "") As Boolean
  8. On Error GoTo ErrorHandler:
  9. Const cdoSendUsingMethod = _
  10. "http://schemas.microsoft.com/cdo/configuration/sendusing"
  11. Const cdoSendUsingPort = 2
  12. Const cdoSMTPServer = _
  13. "http://schemas.microsoft.com/cdo/configuration/smtpserver"
  14. Const cdoSMTPServerPort = _
  15. "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
  16. Const cdoSMTPConnectionTimeout = _
  17. "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
  18. Const cdoSMTPAuthenticate = _
  19. "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
  20. Const cdoBasic = 1
  21. Const cdoSendUserName = _
  22. "http://schemas.microsoft.com/cdo/configuration/sendusername"
  23. Const cdoSendPassword = _
  24. "http://schemas.microsoft.com/cdo/configuration/sendpassword"
  25. Dim objConfig As CDO.Configuration
  26. Dim objMessage As CDO.Message
  27. Dim Fields As ADODB.Fields
  28. ' Get a handle on the config object and it's fields
  29. Set objConfig = New CDO.Configuration
  30. Set Fields = objConfig.Fields
  31. ' Set config fields we care about
  32. With Fields
  33. .Item(cdoSendUsingMethod) = cdoSendUsingPort
  34. .Item(cdoSMTPServer) = "邮件发送服务器地址" '"smtp.chinawiser.com"
  35. .Item(cdoSMTPServerPort) = 25 '端口,默认为25
  36. .Item(cdoSMTPConnectionTimeout) = 30
  37. .Item(cdoSMTPAuthenticate) = cdoBasic
  38. .Item(cdoSendUserName) = "用户名" '"test@chinawiser.com"
  39. .Item(cdoSendPassword) = "密码" '"test"
  40. .Update
  41. End With
  42. Set objMessage = New CDO.Message '
  43. Set objMessage.Configuration = objConfig
  44. 'The Mail Cc
  45. If IsNull(strCc) Then
  46. Else
  47. objMessage.CC = strCc
  48. End If
  49. With objMessage
  50. .To = strTo
  51. .From = strFrom '"Display Name "
  52. .Subject = strSubject '"SMTP Relay Test"
  53. .TextBody = strMailText '"SMTP Relay Test Sent @ " & Now()
  54. .Send
  55. End With
  56. Set Fields = Nothing
  57. Set objMessage = Nothing
  58. Set objConfig = Nothing
  59. Exit Function
  60. ErrorHandler:
  61. MsgBox "Error!" & vbCrLf & "ErrorNumber:" & vbCrLf & "Error Description:" & Err.Description
  62. Resume Next
  63. End Function

2.运用语音触发

主要添加了一条使用sendmail函数脚本(其余不变)

  1. Public Sub Sound(ByVal name As String, ByVal tt As String, ByVal sql As String)
  2. On Error Resume Next
  3. Dim workspace As Object
  4. Set workspace = GetObject("", "Workspace.Application")
  5. Dim tagvar As Object
  6. Set tagvar = workspace.Documents("User").Page.FindObject("PicNumBer")
  7. tagvar.Description = name
  8. Dim mail As String
  9. mail = name + sql
  10. Dim TOP As Integer
  11. Dim LEFT As Integer
  12. TOP = Int((50 * Rnd) + 1)
  13. LEFT = Int((50 * Rnd) + 1)
  14. Dim StrD As String
  15. Dim userid As String
  16. Dim username As String
  17. Dim groupname As String
  18. System.FixGetUserInfo userid, username, groupname
  19. StrD = Format(Now, "yyyy-mm-dd hh:mm:ss")
  20. Set conODBC = New ADODB.Connection
  21. conODBC.ConnectionString = "DSN=QPBZ;UID=sa;PWD=;"
  22. conODBC.Open "QPBZ", "sa", ""
  23. conODBC.Execute "insert into shijianjilu (DateTimee,mingcheng,neirong,operator) values ('" + StrD + "','" + name + "', '" + sql + "', '" + username + "')"
  24. conODBC.Close
  25. If SendMail("xxxx@163.com", "xxxxx@qq.com", "泵站", mail) = True Then
  26. End If
  27. openpicture tt, "", TOP, LEFT, 0, , NONE, "", True
  28. End Sub

3.结果测试

发送方:

接收方:

测试成功,这样就在远距离情况下,也能第一时间从手机邮件提醒中,查看故障情况,并及时处理。

接下来,准备将数据上阿里云,然后对接微信小程序,实现真正的报警推送机制。

Intouch/ifix语音报警系统制作(4-自动发送邮件提醒)的更多相关文章

  1. Intouch/ifix语音报警系统制作(2)

    在我的先前一篇关于语音报警系统制作的文章中,阐述了如何通过标签组来获得@name@的详细内容,以通过这种方式来进行详细的设备故障播报.经过一段时间的试运行,发现使用标签组的方式会产生较大的耦合,(即当 ...

  2. Intouch/ifix语音报警系统制作(3-利用自定义过程和函数,重构先前版本)

    在语音模块嵌入了半年左右的时间,经过实际使用发现,代码冗余,重复太多,维护较难,新增也不易,故而对整个框架进行整理,实现简单添加,维护容易的目的. 1.代码优化 1.1构建自定义过程 name 参数代 ...

  3. java使用JMail通过QQ邮件服务器实现自动发送邮件

    前言:项目开发的过程中,我们项目需要一个自动发送邮件提醒的小功能,于是简单的研究了一下java的JMail来实现自动发送邮件的功能.已被后期需要参考. 一.准备 实现的原理很简单:发送人 , 中转的邮 ...

  4. Intouch/ifix关于语音报警的一种设置思路

    工控项目最近升级改造,需要使用Intouch/ifix提供一个语音报警功能.这个不像先前提供的单一的声音报警,业主方要求能详细的提供某某水泵或者是某某设备故障报警,这就要求我们这边对语音解析或者基础控 ...

  5. powershell《语音报警系统》

    用powershell实现:“倩女幽魂姥姥”版<语音报警系统> ------[第一章 前言]------ win7,及以上版本中,是自带语音库的,系统自带一套女声中文库,一套女声英文库.用 ...

  6. 【C#】新建服务自动发送邮件

    ---windows服务,---自动发送邮件 邮件发送code #region 发送邮件函数 public void SendMailUseZj() { System.Net.Mail.MailMes ...

  7. Jenkins配置自动发送邮件,成功!

    Jenkins自动发送邮件配置: 打开"系统管理"--"系统设置" 在"Jenkins Location"设置系统管理员地址(重要:不能省略 ...

  8. python+selenium生成测试报告后自动发送邮件

    标签(空格分隔): 自动化测试 运行自动化脚本后,会产生测试报告,而将测试报告自动发送给相关人员,能够让对方及时的了解测试情况,查看测试结果. 整个脚本包括三个部分: 生成测试报告 获取最新的测试报告 ...

  9. VBA控制outlook自动发送邮件(转)

    使用Excel VBA实现Outlook自动发送邮件 | 在工作上我们都会遇到批量发送邮件的情况,面对重复而规律性的工作,可以使用Excel的VBA实现自动批量化发送邮件.大大减小工作时间,提升工作效 ...

随机推荐

  1. 如何提升springboot服务吞吐量

    生产环境偶尔会有一些慢请求导致系统性能下降,吞吐量下降,下面介绍几种优化建议. 方案 1.undertow替换tomcat 电子商务类型网站大多都是短请求,一般响应时间都在100ms,这时可以将web ...

  2. 有效Ajax案例

    <script>$(document).ready(function(){ $("input:submit").click(function(){ $.ajax({ t ...

  3. AJAX异步原理与实现

    面试时问到了这个问题,说实话我还是不理解的,只是单单会使用.所以今天我看一下,自己了解下. 看了网上前辈们写的资料,我自己总结归纳ajax的原理和流程如下: 1.AJAX创建异步对象XMLHttpRe ...

  4. Java8-四个函数式接口(Consumer,Supplier,Predicate,Function)

    Java8---函数式接口 Consumer---消费者(accept方法,Lambda与方法引用返回都是Consumer) Supplier---供给型(get方法,返回数据,与Optional可以 ...

  5. vue项目中一些标签直接放在<template>下会报错Failed to compile with 1 errors

    原因是a标签button以及element-ui的组件不能直接放在<template>下,需要先有一个div,其他标签要放在div下

  6. MIT6.828 Lab3 User Environments

    Lab3 这个实验分成了两个大部分. 1. PartA User Environments and Exception Handling kernel使用Env这个数据结构来trace每一个user ...

  7. 30、LNAP(php和nginx相关优化)

    30.1.php-fpm.conf参数优化: [global] pid = run/php-fpm.pid #php后台运行pid路径 error_log = log/php-fpm.log #php ...

  8. Visual Studio 2010 SP1 中文升级补丁ISO完整版下载 (含多国语言)

    最近事情比较多,差点忘记了这个VS2010 SP1的升级补丁更新了,程序员们赶快更新吧!这次发布的SP1包含了下列语言:英文,简体中文,繁体中文,法语,德语,印度语,日语,韩语,俄语以及西班牙语. V ...

  9. 在FLEX中真正的隐藏一个组件,隐藏后不占据自身的位置. (转)

    一直被这个问题困扰,就是在设置UI的Visible的时候,改组件的位置一直被占着,比较恶心,今天在这里发现了一个方法, 操作方法如下设置: includeInLayout为false即可 来自:htt ...

  10. 关于使用Flex中图片处理

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...