我正在尝试自动化一个过程,在这个过程中我收到一封带有附件txt的电子邮件
我打开并检查第二行的日期并保存到特定位置的该日期文件夹。
使用Outlook中的此代码和邮件规则,我将文件保存在您希望的文件夹中:
现在的问题是:
如何在保存之前阅读第二行txt?
Public Sub SalvarAnexo(Item As MailItem)
Dim Atmt As Attachment
Dim FileName As String
MsgBox "Mensagem Recebida de " & Item.Sender & "!"
For Each Atmt In Item.Attachments
If Right(Atmt.FileName, 3) = "txt" Then
FileName = "C:\temp\" & Format(Item.CreationTime, "yyyymmdd_hhnnss_") & Atmt.FileName
Atmt.SaveAsFile FileName
End If
Next Atmt
End Sub
答案 0 :(得分:3)
您可以使用FileScriptingObject
抓取文本文件的第二行,如此。
Public Sub SalvarAnexo(Item)
Dim Atmt As Attachment
Dim FileName As String
Dim objFSO As Object
Dim objFile As Object
Dim strTest As String
MsgBox "Mensagem Recebida de " & Item.Sender & "!"
For Each Atmt In Item.Attachments
If Right$(Atmt.FileName, 3) = "txt" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
FileName = "C:\temp\" & Format(Item.CreationTime, "yyyymmdd_hhnnss_") & Atmt.FileName
Atmt.SaveAsFile FileName
Set objFile = objFSO.OpenTextFile(FileName, 1)
strTest = objFile.ReadLine
strTest = objFile.ReadLine
objFile.Close
MsgBox "Your date is " & strTest
End If
Next Atmt
End Sub
答案 1 :(得分:-1)
Outlook对象模型不提供任何动态读取附件的功能。您需要将附件作为文件保存在磁盘上,然后打开它以读取第二行。您也可以考虑使用低级代码(或任何第三方包装器) - 扩展MAPI。它允许以字节流的形式打开附件。