在AS/400的PCOM屏幕上用宏代码发送邮件[vbs]

时间:2016-09-28 ┊ 阅读:7,951 次 ┊ 标签: 开发 , 编程 , 分享

最近一直研究怎么在as400上屏幕宏操作中,自动做一些业务并根据不同情况把结果报表发邮件到指定客户邮箱,以前一直在as400里面做,现在因为是手动业务需要,简单说来就是一些天天重复性的工作,又想自动做又想做的和真人做的一样,这就马上又要运用vbs宏命令了。
以前写了好多,自动做batch作业的结果检查并生成txt的报表,解放了我的双手,中需要启用脚本自己去忙活其他工作好,脚本到时间会自动做check并按非常规范的格式生成报表。等忙活完觉得完事了来瞅一眼报表是否ok就好了,哈哈,听起来是不是很美丽,我一直这样做哦,平时把很多重复性工作尽量的写成程序来做,解放双手,把有限的时间尽可能的拉的很长。
今天有点无聊,多啰嗦了几句。

脚本中含有大量发业务,就全删除去了,中间的业务敏感信息也能代替为xxx等。代码是正常可用的。其中引用的FormatDateTime可以参考格式化输出日期时间新版本[VBS]。收工。

[PCOMM SCRIPT HEADER]
LANGUAGE=VBSCRIPT
DESCRIPTION=Auto Check xxx
[PCOMM SCRIPT SOURCE]
OPTION EXPLICIT
autECLSession.SetConnectionByName(ThisSessionName)
'Script Name: Auto Check xxx
'Author Name: Kevin
'Create Date: 2016/09/20
'Version Control
'-----------------------------------------------------
'Revise Date  Version  Description
'2016/09/20   v1.0     Auto Check
'-----------------------------------------------------

REM This line calls the macro subroutine Main
Main

Sub Main()
    SendMail True, strMailData
End Sub

'Send email to someone
Sub SendMail(boolSend, strMailData)
    Dim OLA, mailItem, arrMailData, i
    Set OLA = CreateObject("Outlook.Application")
    Set mailItem = OLA.CreateItem(0)
    mailItem.SubJect = "xxx on " + FormatDateTime(Now,5) + " - xxx"
    'cat mail data
    If boolSend Then
        mailItem.Body = strMailData
    Else
        arrMailData = Split(strMailData, "~")
        mailItem.Body = "Hi all"
        mailItem.Body = mailItem.Body + " "
        For i = 0 To UBound(arrMailData)
            mailItem.Body = mailItem.Body + arrMailData(i)
        Next
    End If
    '添加上签名信息
    '这儿有个细节,研究半天。之前在拼接这个邮件内容时,总想着自己换行,用过chr(10)和chr(13)来换行,也试了vbcrlf或vbcr或vblf等正常的vb换行符都可以用,但就是换行时出现行高很高的情况,格式很难看。但mailitem提供的html的format在pcom的宏命令上又不好用,可能不支持。最后无意中发现,每次按如下方式拼接一次邮件主体,就会自动换行,不加格式,行高保持一致,想隔行时,一定要拼接一个空格字符串后会以同样的行高来换一行。格式相当的符合我的需要啦,美丽啊。
    mailItem.Body = mailItem.Body + " "
    mailItem.Body = mailItem.Body + " "
    mailItem.Body = mailItem.Body + "Should you have any queries, please feel free to contact me."
    mailItem.Body = mailItem.Body + " "
    mailItem.Body = mailItem.Body + "Thanks & Regards!"
    mailItem.Body = mailItem.Body + "Kevin"
    '添加附件
    mailItem.Attachments.Add("test.txt")
    '收件人
    mailItem.To = "kevin@xxx1.com"
    '抄送给谁
    mailItem.CC = "kevin@xxx2.com"
    If boolSend Then
        '直接发送
        mailItem.Send
        'mailItem.Save
    Else
        '保存到草稿箱,这样可以再稍编辑一下修改下就可以自己发了。
        mailItem.Save
    End If
    Set mailItem = Nothing
    Set OLA = Nothing
End Sub

文章评论

添加新评论

温馨提醒:如果您是第一次在本站留言,需要审核后才能显示哦!

相关文章

Whatsapp只能查看最近三天的聊天记录了怎么办?

Whatsapp只能查看最近三天的聊天记录了怎么办?

今天突然发现电脑上的WhatsApp只能查看最近3天的聊天记录了,显示要查看3天前的记录请到手机上查看。很是吃惊,以前一直是所有记录都自动同步到电脑版的啊,不论换电脑了还是换手机了,聊天记录从来没丢过。 查询一翻也没有找出来原因,怎么也同步不过去。 电脑版app重新安装了,也不行。 有个方法说...
阅读全文>>
ValueError: Error getting directory

ValueError: Error getting directory

ssl证书过期了 明明自动renew的 然后看log已经好久没更新成功了 查半天是当前server不信任远程连接 只能自己改代码 报错: 21-12-17 13:01:11 Generate CSR...amkevin.csr amkevin.csr generated. /home/www...
阅读全文>>
网页路径中的'.'和'..'还有'./'和'../'区别

网页路径中的'.'和'..'还有'./'和'../'区别

. 表示当前目录 .. 表示当前目录的上一级目录。 ./表示当前目录下的某个文件或文件夹,视后面跟着的名字而定 ../表示当前目录上一级目录的文件或文件夹,视后面跟着的名字而定。 例如: 文件夹 a 下面有 文件夹b c 和文件 d。 文件夹b下面有e.php 和文件f。 则e中的 . 表示...
阅读全文>>
Introduction to ILE RPG Activation Groups

Introduction to ILE RPG Activation Groups

Learn how activation groups can help your ILE RPG programs run more efficiently, how to specify the type of group to use, and closing and reclaimin...
阅读全文>>
popup.js怎么和content.js通信?[JQuery]

popup.js怎么和content.js通信?[JQuery]

这两天为了实现一个谷歌浏览器插件功能,研究了半天怎么让插件来改特定网页里的特定字段的值,而这个值又来自popup的网页预先设定,下一步实现动态加载,可以让更多组实现便利。 目的很简单,我们有一个list,需要填到网页的某个字段,当然是好几个,这些值是设定好的,网页系统我们没法改,input想...
阅读全文>>