我想从Outlook电子邮件中下载附件。
这是我用来检索电子邮件的代码。
Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox).Folders(botMailFolder)
i = 1
For Each OutlookMail In Folder.Items
If InStr(OutlookMail.Subject, " ") <> 0 Then
If OutlookMail.Attachments.Count > 0 Then
Dim folderBase As String
folderBase = botLocalFolder
Dim newFolder As String
newFolder = folderBase & OutlookMail.EntryID
'OutlookItem.SenderAddress
If Not FolderExists(newFolder) Then
FolderCreate newFolder
End If
For Each a In OutlookMail.Attachments
Dim newFileName As String
newFileName = newFolder & "\" & a.DisplayName
'MsgBox newFileName
a.SaveAsFile newFileName
Next
End If
End If
Next OutlookMail
问题是Sender
,SenderEmailAddress
和SenderName
为空。只有SenderEmailType
被填充为 EX 。
该代码作为Excel宏执行,我的所有发件人(用户)都是Exchange 2013用户。
如何找到电子邮件项目发件人的电子邮件地址和名称?
框中的所有电子邮件都会发生这种情况。有人告诉我,这是因为所有人都是“交换用户”,企业管理员可以为他们设置限制。
答案 0 :(得分:0)
我也遇到了这个问题。我唯一可以克服的方法是在OUTLOOK VBA中运行代码(Outlook->开发人员选项卡-> vba),而不要专门将应用程序作为Outlook应用程序启动。
示例:
Dim olApp As Outlook.Application
Set olApp = CreateObject(Outlook.Application)
需要成为
Dim olApp As Application
Set olApp = Application
诀窍是不要从外部Outlook(在Excel中为IE)打开Outlook的新实例。如果您具有任何类型的Outlook Exchange安全设置,则从excel中打开Outlook将禁止您访问关键信息,例如发件人。