小赖子的英国生活和资讯

VBScript 通过命令行发邮件 (GMail, SSL)

阅读 桌面完整版

在LINUX下, 你可以通过安装 sendmail 程序并通过 mail 命令方便的发邮件. 在WINDOWS下, 你可以通过以下VBSCRIPT在WINDOWS的宿主脚本环境(Windows Scripting Host)下运行.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
' VBScript to Send Email Notification
' Author: https://helloacm.com
' Usage: cscript.exe sendemail.vbs email subject text
' 23/Dec/2014
 
Sub SendEmail(ToAddress, Subject, Text)
    Dim iMsg 
    Dim iConf
    Dim Flds
 
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
 
    iConf.Load -1
    Set Flds = iConf.Fields
    
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "gmail account"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "gmail password"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 'smtp mail server
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 'stmp server
        .Update
    End With
 
    With iMsg
        Set .Configuration = iConf
        .To = ToAddress
        .From = "dr.zhihua.lai at gmail.com"
        .Subject = Subject
        .TextBody = Text
        .Send
    End With
 
    Set iMsg = Nothing
    Set iConf = Nothing
End Sub
 
If WScript.Arguments.Count <> 3 Then
    WScript.Echo "Usage: cscript.exe " & WScript.ScriptFullName & " email subject text"
Else 
    SendEmail WScript.Arguments(0), WScript.Arguments(1), WScript.Arguments(2)
End If
' VBScript to Send Email Notification
' Author: https://helloacm.com
' Usage: cscript.exe sendemail.vbs email subject text
' 23/Dec/2014

Sub SendEmail(ToAddress, Subject, Text)
	Dim iMsg 
    Dim iConf
    Dim Flds

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")

    iConf.Load -1
    Set Flds = iConf.Fields
    
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "gmail account"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "gmail password"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 'smtp mail server
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 'stmp server
        .Update
    End With

    With iMsg
        Set .Configuration = iConf
        .To = ToAddress
        .From = "dr.zhihua.lai at gmail.com"
        .Subject = Subject
        .TextBody = Text
        .Send
    End With

    Set iMsg = Nothing
    Set iConf = Nothing
End Sub

If WScript.Arguments.Count <> 3 Then
    WScript.Echo "Usage: cscript.exe " & WScript.ScriptFullName & " email subject text"
Else 
    SendEmail WScript.Arguments(0), WScript.Arguments(1), WScript.Arguments(2)
End If

在使用这个脚本前, 你必须把用户名和密码都改成你自己的帐号,然后在命令行下可以通过 cscript.exe 来解释运行这脚本.

C:\Windows\system32>cscript.exe sendemail.vbs zhihua.lai@ranplan.co.uk "Hello World" "http://helloacm.com"
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.


C:\Windows\system32>

这样, 比如系统每天运到些什么不太正常的情况(比如SVN上有人提交代码编译不过或者没通过单元测试),那么就发邮件提醒你,以免拖太久难于修复.

英文同步: https://helloacm.com/how-to-send-email-using-vbscript-and-gmail-ssl/

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version