有关在SQL Server代理作业/ DTS包中编写ActiveX脚本/ VBScript的一些问题

时间:2015-04-21 05:57:51

标签: email vbscript

我使用SQL Server代理作业/ DTS包,用ActiveX Script / VBScript编码。 它工作正常。

但目前我还需要一些帮助:

  • 第一:是否有可能在DTS步骤中从ActiveX脚本代码中发送html电子邮件?

我的公司并不想购买单独的商业DLL来发送smtp电子邮件...例如JMail。 我知道我可以购买许多这样的DLL,可用于使用VB或其他语言发送电子邮件。 但是我们没有钱购买这些外部组件。

我可以使用SQL Server数据库邮件吗? ...但是有必要以html发送邮件......

  • 是否有可能在DTS步骤中从ActiveX脚本/ VBScript代码创建新的* .txt,* .csv或* .xlsx文件?

我想将html电子邮件正文代码(我在ActiveX脚本代码中构建的字符串)复制到这些文件中,并将它们附加到我从脚本代码发出的电子邮件中。因此,用户/收件人获取嵌入在电子邮件正文中的html内容,并在文件中分开。

提前感谢您的帮助。

托米

1 个答案:

答案 0 :(得分:0)

此代码有效。 PLUS 它会显示任何错误,告诉您它为什么无法正常工作。

Set emailObj      = CreateObject("CDO.Message")
emailObj.From     = "dc@gmail.com"

emailObj.To       = "dc@gmail.com"

emailObj.Subject  = "Test CDO"
emailObj.TextBody = "Test CDO"

emailObj.AddAttachment "C:/Users/User/Desktop/err.fff"

Set emailConfig = emailObj.Configuration

emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")    = 2  
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1  
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")      = true 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")    = "dc"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")    = "Ss"
emailConfig.Fields.Update

On Error Resume Next
emailObj.Send

If err.number = 0 then 
 Msgbox "Done"
Else
 Msgbox err.number & " " & err.description
 err.clear
End If

此外,您在www.gmail.com上的帐户需要设置为允许SMTP访问(如果使用gmail,那么很多人都会这样做。)

配置信息来自Outlook Express(WinXP中的最后一个,在Vista中重命名为Windows Mail,从Win7及更高版本中删除)。这显示了计算机上的默认配置。您可能需要安装Windows Live Mail。您还必须在Windows功能中打开SMTP服务。

Set emailConfig = emailObj.Configuration
On Error Resume Next    
For Each fld in emailConfig.Fields
    Text = Text & vbcrlf & fld.name & " = " & fld
    If err.number <> 0 then
        Text = Text & vbcrlf & fld.name & " = Error - probably trying to read password - not allowed"
        err.clear
    End If
Next
Msgbox Replace(Text, "http://schemas.microsoft.com", "")

Windows 2000的所有版本/版本并不总是包含Windows 2000的CDO。请参阅http://support.microsoft.com/en-au/kb/171440