title: MS Access / Outlook 2010 - how to choose which account to send email from?
body: <p>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.</p>
  
  <pre><code>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
  </code></pre>
  
  <p>Updated code:</p>
  
  <pre><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
  </code></pre>