简体   繁体   中英

Sending email through MS Access VBA / Outlook, choosing sending profile

I am looking at this snippet of code from another question here (MS Access VBA): https://stackoverflow.com/a/17975507/1085885

Right now this code only works when I run it while Outlook is open. Is there any way for this code to "open Outlook" and then run all the sending code?

Secondly, how can I choose which Outlook profile to send from? I have access to a couple different profiles and it's sending from my main top inbox but I want it to come from my second inbox.

You need to log to the specified profile. After creating an instance of the Outlook application

Set oApp = CreateObject("Outlook.application")

add something like the following:

set oNS = oApp.GetNamespace.Logon
oNS.Logon("MyProfileName")

Note if Outlook is already running, Logon will do nothing. You will need to use Extended MAPI (C++ or Delphi or a MAPI wrapper like Redemption ( RDOSession .Logon) to log to a specified profile.

Why not work with a single profile and create multiple accpunts? You can then set the MailItem.SendUsaingAccount property to specify a particular account.

Try it this way.

Private Sub Command1_Click()

Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem

On Error Resume Next


'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
    'Outlook wasn't running, start it from code
    Set oOutlookApp = CreateObject("Outlook.Application")
    bStarted = True
End If

'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)

With oItem
    'Set the recipient for the new email
   .To = "receiver@gmail.com"

    .Send
End With

If bStarted Then
'    'If we started Outlook from code, then close it
    oOutlookApp.Quit
End If

'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing



End Sub

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM