簡體   English   中英

從發件人帳戶獲取電子郵件地址

[英]Get Email address from sender account

當激活此宏時,是否有辦法從已登錄的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 = "carsten.asdf@xxx.yy"
    .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

我需要獲取“發件人”電子郵件地址。

EDIT1:smtp的解決方案

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

嘗試MailItem.Session.CurrentUser.AddressMailItem.SenderEmailAddress都應該起作用。

您可能需要從Exchange帳戶轉換為SMTP,要執行此操作,請參閱:

如何在VB.NET中使用Outlook.MailItem獲取發件人的電子郵件地址?

要獲取當前用戶的電子郵件地址,請使用以下代碼。

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

要選擇從哪個地址發送電子郵件,請使用此代碼。 這樣,您將在創建的電子郵件中插入"FROM"選項卡。

With olApp.CreateItem(0)
    .SentOnBehalfOfName = "YourEmail@yourdomain.com"
    .GetInspector.Display
    olOldBody = .htmlBody
    .To = "carsten.asdf@xxx.yy"
    .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)代碼行之后With olApp.CreateItem(0)放置.SentOnBehalfOfName = "YourEmail@yourdomain.com"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM