2016-01-29 73 views
0

我希望通过将所有传入电子邮件的发件人姓名保存到变量中,以便稍后使用它将电子邮件返回到该名称或电子邮件地址。使用传入的电子邮件发件人姓名或电子邮件地址保存附件

下面第一代码对每一个项目的文件夹上创建了一个计数器和如下重命名日期的文件和原始附件:“2016年1月29日1026 1个POCreation” - 的“POCreation”之前的数字1是柜台。

然后我保存附件通过运行Outlook中的规则,下面的脚本运行 - 正如你可能知道 - 并利用objAtt.DisplayName

保存附件名称所以基本上我想要得到的名字发件人或发件人的电子邮件存储在变量中。我访问的所有论坛,甚至在这里都解释说,他们去“MAPI”文件夹阅读所有的电子邮件,但我认为或许我可以像使用.displayname一样获得它。

我试图使用mailitem.sendername,但是这会抛出一个对象没有找到的错误,我想不是从传入的电子邮件中读取它。我正在将其运行到Outlook的一个模块中。

Public Sub pdf(itm As Outlook.MailItem) 
Dim FolderPath As String, path As String, count As Integer 
FolderPath = "C:\Users\esacahui\Documents\POS\received" 

path = FolderPath & "\*.xlsm" 

FileName = Dir(path) 

Do While FileName <> "" 
    count = count + 1 
    FileName = Dir() 
Loop 
' that was the counter, now is the save attachment 

Dim objAtt As Outlook.Attachment 
Dim saveFolder As String 
    saveFolder = "C:\Users\esacahui\Documents\POS\received" 
Dim dateFormat As String 
    dateFormat = Format(itm.ReceivedTime, "yyyy-mm-dd Hmm") 

For Each objAtt In itm.Attachments 
    objAtt.SaveAsFile saveFolder & "\" & dateFormat & " " & count & " " & objAtt.DisplayName 
Next 

End Sub 
+0

在代码中,您完全可以使用MailItem类的'SenderName'属性吗? –

+0

itm在Sub的参数中定义为Outlook.MailItem。所以你需要使用itm.SenderName,如我在下面的评论中提到的。 – PKatona

回答

0

itm.senderEmailAddress会为您发送发件人的电子邮件地址。

+0

还有itm.SenderName – PKatona

相关问题