2017-09-25 147 views
1

当我激活此宏时,是否有办法从已登录的Outlook帐户“读取”用户电子邮件地址并发送电子邮件?从发件人帐户获取电子邮件地址

Sub MailSenden() 

Dim olApp  As Object 
Dim olOldBody As String 

Rem Email erstellen 
Set olApp = CreateObject("Outlook.Application") 

With olApp.CreateItem(0) 
    .GetInspector.Display 
    olOldBody = .htmlBody 
    .To = "[email protected]" 
    .Subject = "Testformular" 
    .Body = "Das ist eine e-Mail" & Chr(13) & _ 
      "Viele Grüße..." & Chr(13) & Chr(13) 
    .Attachments.Add "C:\Users\" & Environ$("USERNAME") & "\Desktop\" & "CSV-Export.csv" 
    .Attachments.Add ActiveWorkbook.FullName 
    .Send 

End With 

Kill "C:\Users\" & Environ$("USERNAME") & "\Desktop\" & "CSV-Export.csv" 


End Sub 

我需要获取“from”电子邮件地址。

EDIT1方案:针对SMTP

Msgbox   
CreateObject("Outlook.Application").GetNamespace("MAPI").Session.CurrentUser. _ 
AddressEntry.GetExchangeUser.PrimarySmtpAddress 

回答

0

要获取当前用户的电子邮件地址,请用下面的代码。

With olApp 
MsgBox .GetNamespace("MAPI").CurrentUser.Address 
End With 

选择从哪个地址,您将发送电子邮件,请使用此代码。这样你就可以在创建的电子邮件中插入"FROM"选项卡。

With olApp.CreateItem(0) 
    .SentOnBehalfOfName = "[email protected]" 
    .GetInspector.Display 
    olOldBody = .htmlBody 
    .To = "[email protected]" 
    .Subject = "Testformular" 
    .Body = "Das ist eine e-Mail" & Chr(13) & _ 
      "Viele Grüße..." & Chr(13) & Chr(13) 
    .Attachments.Add "C:\Users\" & Environ$("USERNAME") & "\Desktop\" & "CSV-Export.csv" 
    .Attachments.Add ActiveWorkbook.FullName 
    .Send 

End With 

请注意,您应该之后With olApp.CreateItem(0)行代码把.SentOnBehalfOfName = "[email protected]"

相关问题