2017-09-25 28 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 

「送信元」の電子メールアドレスを取得する必要があります。

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]"権利を置く必要があることに注意してください。

関連する問題