Clever-Excel-Forum

Normale Version: Outlook E-Mail über VBA generiert; Falsches E-Mail Konto
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag zusammen,


Ich habe ein einfaches Macro, mit dem ich aus Excel E-Mails mit variablem Inhalt in Outlook erstelle, siehe unten.

Es funktioniert soweit gut, bis auf einen Punkt:

Als Absender der E-Mail erscheint bei Outlook zwar der eingetragene Absender (.SentOnBehalfOfName = beispiel@domain.de), die E-Mail wird aber dennoch von meinem Standard-Email-Konto abgesendet.

Wie kann ich das beheben?

Besten Dank für eure Hilfe.

Mfg GodOfGrain

___________



Sub EMail_ASD()

Dim objOutlook As Object
Dim objMail As Object

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)

With objMail
   .To = X
   .Subject = Y
   .SentOnBehalfOfName = "beispiel@domain.de"
   .Body = TEXT

End With
End Sub
Hallo,

mal aus der OH zu Outlook-VBA rausgezogen. Keine Ahnung ob es dir hilft.

Zitat:Outlook-Entwicklerreferenz
MailItem.SendUsingAccount-Eigenschaft
Gibt ein Account-Objekt zurück, das das Konto darstellt, unter dem das MailItem-Objekt gesendet wird, oder legt dieses Objekt fest. Wert mit Lese-/Schreibzugriff.
Versionsinformationen
Hinzugefügte Version:  Outlook 2007

Syntax

Ausdruck.SendUsingAccount

Ausdruck   Ein Ausdruck, der ein MailItem-Objekt zurückgibt.

Anmerkungen


Mithilfe der SendUsingAccount-Eigenschaft kann das Konto angegeben werden, das zum Senden des MailItem-Objekts verwendet werden soll, wenn die Send-Methode aufgerufen wird. Diese Eigenschaft gibt Null (Nothing in Visual Basic) zurück, wenn das für das MailItem-Objekt angegebene Konto nicht mehr vorhanden ist.


Beispiel


Das folgende Codebeispiel in Microsoft Visual Basic für Applikationen zählt die Accounts-Auflistung auf, um ein POP3-Konto zu finden. Sobald das Konto gefunden wurde, wird programmgesteuert eine Nachricht erstellt und dem POP3-Konto die SendUsingAccount-Eigenschaft zugewiesen. Beachten Sie, dass dieSendUsingAccount-Eigenschaft zugewiesen werden muss, bevor die Send-Methode aufgerufen wird.

Visual Basic für Applikationen
Sub SendUsingAccount()
   Dim oAccount As Outlook.account
   For Each oAccount In Application.Session.Accounts
       If oAccount.AccountType = olPop3 Then
           Dim oMail As Outlook.MailItem
           Set oMail = Application.CreateItem(olMailItem)
           oMail.Subject = "Sent using POP3 Account"
           oMail.Recipients.Add ("someone@example.com")
           oMail.Recipients.ResolveAll
           oMail.SendUsingAccount = oAccount
           oMail.Send
       End If
   Next
End Sub



© 2010 Microsoft Corporation. Alle Rechte vorbehalten.



Siehe auch
MailItem (Objekt)
Elemente des MailItem-Objekts
Vorgehensweise-: Senden einer E-Mail-Nachricht mithilfe der SMTP-Adresse eines Kontos
Hallo,

mal ganz einfach dein Makro erweitert:
Code:
Sub EMail_ASD()

Dim objOutlook As Object
Dim objMail As Object

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)

With objMail
   .To = X
   .Subject = Y
   .Body = TEXT
   .SendUsingAccount = OutApp.Session.Accounts.Item(1)      ' hier testen, welche Zahl das richtige Konto ist.

End With
End Sub

klappt's?
Grüße, Ulrich
(10.04.2018, 13:32)losgehts schrieb: [ -> ]Hallo,

mal ganz einfach dein Makro erweitert:

[...]

klappt's?
Grüße, Ulrich

Leider nicht. Ich erhalte den Laufzeitfehler 424 ("Objekt erforderlich")

Also ich hab mal die Zahlen 1-5 durchprobiert, und immer kommt diese Meldung.
".SendUsingAccount" sollte mich aber weiter bringen... ich schau da morgen mal genauer rein :)
Google-Suche über den Send_Using_Account Befehl hat mich hierhin geführt:

https://www.rondebruin.nl/win/s1/outlook/account.htm

Funktioniert.

Vielen Dank und LG

Grain