将单独的电子邮件发送给预先定义的一组文件夹中所有文件的人

|| 我有一堆文件在文件夹“ C:\\ Email \”中得到更新。这些是每周创建的PDF文件。这个数字可能介于50到500个或更多文件之间。文件名是随机的。 我需要将这些文件分别发送到三个地址,例如a @ a.com,b @ b.com和c@c.com。我无法一次性发送所有文件,它们需要单独发送。主题将是文件的名称,正文将保持不变-\“请查找附件。谢谢,ABC \”。 我一直在使用一些excel工作表的组合,在这些工作表中,我汇总了所有必需的参数,以使用命令行语法(例如\“ C:\\ Program Files \\ Microsoft Office \\)来为批处理文件提供文件名。 Office12 \\ Outlook.exe / c ipm.note / m \“ a @ a.com,b @ b.com,c @ c.com&subject = <>&body =请找到附件。感谢和问候,ABC \“ 这是我今天想到的最简单的事情,但是它很麻烦,因为它会打开尽可能多的Outlook新消息窗口,就像有文件一样,这可能会很累。其次,这不允许我自动发送消息。 希望有人可以提出一个VBS / Windows脚本/ VBA代码来自动化它们。     
已邀请:
使用Dir Loop抓取每个PDF文件并创建新电子邮件。像这样:
Const SOURCE_FOLDER As String = \"C:\\Email\\\"
Const RECIP_A As String = \"a@a.com\"
Const RECIP_B As String = \"b@b.com\"
Const RECIP_C As String = \"c@c.com\"
Const EMAIL_BODY As String = \"Please find attached file. Thanks and Regards, ABC\"

Sub SendPDFs()

  On Error GoTo ErrorHandler

  Dim fileName As String

  fileName = Dir(SOURCE_FOLDER)

  Do While Len(fileName) > 0
    Call CreateEmail(SOURCE_FOLDER & fileName)

    Dir (SOURCE_FOLDER)
  Loop

ProgramExit:
  Exit Sub
ErrorHandler:
  MsgBox Err.number & \" - \" & Err.description
  Resume ProgramExit
End Sub

Function CreateEmail(fileName As String)

Dim olApp As Outlook.Application
Dim msg As Outlook.MailItem

  \' create email
  Set olApp = Outlook.Application
  Set msg = olApp.createitem(olMailItem)

  \' set properties
  With msg
    .Body = EMAIL_BODY
    .Recipients.Add (RECIP_A)
    .Recipients.Add (RECIP_B)
    .Recipients.Add (RECIP_C)
    .Attachments.Add fileName
    .Send
  End With

End Function
这会将电子邮件文件夹中的每个文件发送给每个收件人,但是不会为每个PDF发送三封单独的电子邮件。如果您特别需要,可以更改代码。     
您可以尝试使用CDO.Message对象从VBScript发送电子邮件。这是取自http://www.paulsadowski.com/wsh/cdo.htm的示例
Set objMessage = CreateObject(\"CDO.Message\") 
objMessage.Subject = \"Example CDO Message\" 
objMessage.From = \"me@my.com\" 
objMessage.To = \"test@paulsadowski.com\" 
objMessage.TextBody = \"This is some sample message text.\" 
objMessage.AddAttachment \"c:\\temp\\readme.txt\"
objMessage.Send
您将其放入循环结构中,以发送文件夹中的每个文件     
替换代码
Do While Len(fileName) > 0     
Call CreateEmail(SOURCE_FOLDER & fileName)      
Dir (SOURCE_FOLDER)   
Loop  
Do While Len(fileName) > 0     
Call CreateEmail(SOURCE_FOLDER & fileName)      
filename = Dir   
Loop 
    

要回复问题请先登录注册