MS Access / Outlook 2010 - how to choose which account to send email from?
ms-access, outlook, vba
Solution
Try using
Set oMail.sendusingaccount=olAccount
instead of
oMail.sendusingaccount=olAccount
It worked for me, your code is perfect, just the `Set` is missing.
Problem
I am trying to send emails from a specific account but it always sends from my main no matter how much code I try or what I do. Is there any way to tell it to send it from a particular account? I am writing my code in MS Access, but using Outlook objects. ``` Sub testEmail() On Error Resume Next Set outapp = GetObject(, "Outlook.Application") If outapp Is Nothing Then Set outapp = CreateObject("Outlook.Application") End If Set oMail = outapp.CreateItem(olMailItem) With oMail .To = "randomaddress@randomdomain.com" .Subject = "test2" .Send End With Set outapp = Nothing Set oMail = Nothing End Sub ``` Updated code: ``` Option Compare Database Sub testEmail() On Error Resume Next Set oApp = CreateObject("Outlook.Application") Set oMail = oApp.CreateItem(olMailItem) Set olAccount = oApp.Account Set olAccountTemp = oApp.Account Dim foundAccount As Boolean Dim strFrom As String strFrom = "FROMADDY@randomaddress.com" foundAccount = False Set olAccounts = oApp.Application.Session.Accounts For Each olAccountTemp In olAccounts Debug.Print olAccountTemp.smtpAddress If (olAccountTemp.smtpAddress = strFrom) Then Set olAccount = olAccountTemp foundAccount = True Exit For End If Next If foundAccount Then Debug.Print "ACCT FOUND!" With oMail .To = "randomaddress@random.com" .Body = "Message!" .Subject = "test3" .sendusingaccount = olAccount End With Else Debug.Print "No acct found" End If Set oApp = Nothing Set oMail = Nothing Set olAccounts = Nothing Set olAccount = Nothing Set olAccountTemp = Nothing End Sub ```