采用visual basic从窗口发送Thunderbird电子邮件带有附件(Sending thu

2019-10-22 00:27发布

我试图从使用Visual Basic,无需任何用户操作Visual Basic脚本发送电子邮件。 这个想法低于第一参考。

http://forums.mozillazine.org/viewtopic.php?f=39&t=540783

http://forums.mozillazine.org/viewtopic.php?t=203591

https://developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options#-options

该脚本的工作,但我一直无法弄清楚如何包括附件。 我知之甚少,但VB在第一参考的混合物“和CHR(34)(”我假设)看起来很怪异。 也是“电子邮件地址”和之间的差异“到”之间的第一和第三基准是令人不安的。

这是我曾尝试。

dim s
Set s = CreateObject("WScript.Shell")
s.run """thunderbird.exe""" & " -compose mailto:mdorl@wisc.edu? &subject=""send mail 3""&body=""nice body text""&attachment='file:///c:/Documents and Settings/Mike/My Documents/sendmail/vb/msg.txt'" 
WScript.Sleep 1000
s.SendKeys "^{ENTER}"
WScript.Sleep 1000 

此构成,且无需用户动作但没有附件发送电子邮件。 我曾尝试周围的文件名,单引号和双引号。

如果我更改文件名到一个不存在的文件,电子邮件被发送没有依附但用户需要采取行动,以实际发送消息。

Answer 1:

编辑我的答案,因为我一直在学习一两件事,这些过去几周;)

你需要周围的撇号:和抄送:列出一个以上的接收方还需要周围的任何主体文本或附件,您要发送的撇号

如果你把一个单引号到您的VBA编辑器,它只是注释出来,这样你就可以通过人权委员会得逞的(39)

另外,作为文档建议,需要附件=“文件:/// C:/test.txt”,其包括文件:///

我已经包括来自东西我一直在下面工作的一个例子

Dim reportTB As Object
Set reportTB = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1


reportTB.Run "thunderbird.exe  -compose to=bfx_" & LCase(show) & "prod@base-fx.com,subject=[" & show & "] EOD Report " _
     & prjDate & ",body=" & Chr(39) & "Hi " & UCase(show) & "ers,<br><br>Today's end of day report is attached.<br>" & _
      "Any questions let me know.<br><br>Edi " & Chr(39) & ",attachment=" & Chr(39) & reportPath & Chr(39), windowStyle, waitOnReturn

希望帮助:)



Answer 2:

写合适的节目。 你不能邮寄地址发送附件。 该标准只允许一个参数(虽然大家都接受许多)。

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")    = "Password1"
emailConfig.Fields.Update

emailObj.Send

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


文章来源: Sending thunderbird email with attachment using visual basic from windows