【发布时间】:2016-01-29 17:41:10
【问题描述】:
我想将每封传入电子邮件的发件人姓名添加到保存的附件项目中,方法是存储到一个变量中,以便我以后可以使用它,将电子邮件返回到该姓名或电子邮件地址。
下面的代码首先为文件夹中的每个项目创建一个计数器,并使用日期和原始附件重命名文件,如下所示:“2016-01-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
【问题讨论】:
-
您在代码中的哪个位置使用了
MailItem类的SenderName属性? -
itm 在您对 Sub 的参数中定义为 Outlook.MailItem。因此,您需要使用 itm.SenderName,如下面我的 cmets 中所述。