Outlook SendUsingAccount to change from account

Status
Not open for further replies.
P

p912s

Hello! I have searched all over the web and have been unable to locate a

solution... the closest I came was a thread on here so I joined.

My problem is sending a message after changing the sending account in

VBA. I get an error - "You Cannot Send An Item That Is Already In The

Process Of Being Sent"

Here is the thread that talked about a solution using a timer to get

the message sent but I don't understand how to implement a timer in

Outlook - http://tinyurl.com/r79d4w

And here is my code - fairly simple, it gathers up the pop3 accounts

and presents them in a popup message to select the account to send from.

The selecting and changing accounts works fine but the messages can't be

sent. I have documented in the code where the error happens.

Thanks.

Option Explicit

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As

Boolean)

Dim oAccount As Outlook.Account

Dim strDefaultAccount As String, strMsg As String, strID As String

Dim strAccounts(100)

Dim c As Integer, i As Integer

Dim result As Variant

c = 1

'get default account

strDefaultAccount = Application.Session.Accounts(1).DisplayName

'get pop3 accounts

For Each oAccount In Application.Session.Accounts

If oAccount.AccountType = olPop3 Then

strAccounts(c) = c & " - " & oAccount

'Debug.Print strAccounts(c)

c = c + 1

End If

Next

'build inputbox account list

strMsg = "Click Ok to use default account or enter the number of

the account to use...." & vbCrLf

For i = 1 To c

strMsg = strMsg & vbCrLf & strAccounts(i)

Next i

'********************************************************

'message id

'I think this is the id i need to recall and send the message?

strID = Item.ConversationIndex

'********************************************************

'display inputbox

result = InputBox(strMsg, "Select Sending Account",

strDefaultAccount)

'act on user input

Select Case result

Case strDefaultAccount

'clicked ok - send from default account

Cancel = True

Set Item.SendUsingAccount =

Application.Session.Accounts(1)

'********************************************************

'send error - "You Cannot Send An Item That Is Already In

The Process Of Being Sent"

Item.Send

'********************************************************

Case IsNumeric(result)

'typed a number

If result <= i Then

Cancel = True

Set Item.SendUsingAccount =

Application.Session.Accounts(result)

'********************************************************

'send error - "You Cannot Send An Item That Is Already

In The Process Of Being Sent"

Item.Send

'********************************************************

Else

'entered incorrect number - stay in message

Cancel = True

End If

Case Else

'clicked cancel or invalid entry - stay in message

Cancel = True

End Select

End Sub

--
 
K

Ken Slovak - [MVP - Outlook]

Application_ItemSend() is too late, the item has already been submitted to

the mail transport by that time with the original email address. Handle that

earlier in the Item.Send() event.

 
P

p912s

Thanks for the reply!

The above code is run from ThisOutlookSession so that when you click

the Send button on a message you're prompted to set the sending account.

Which as you point is to late to change the account.

In that code window my only choices are General and Application... the

only way I know I could get the Item.Send event would be to call it from

a button on a form. And I have tried that, in the Application.Send, set

Cancel =True and then call my form. And then from the form, set the

sending account and try and send the message, but I get the same error.

Is there any way to change the sending account after I have clicked the

Send Button?

Or can I edit the default email message and place my code behind the

Send Button?

Thanks.

p912s
 
K

Ken Slovak - [MVP - Outlook]

In ThisOutlookSession put something like this at the module level:

Dim WithEvents colInsp As Outlook.Inspectors

Dim WithEvents oMail As Outlook.MailItem

In the Application_Startup() event handler instantiate the Inspectors

collection:

Set colInsp = Application.Inspectors

That will let you handle the NewInspector() event. In that event handler

something like this:

If Inspector.CurrentItem.Class = olMail Then

Set oMail = Inspector.CurrentItem

End If

That will let you handle the oMail.Send() event, which fires when you click

the Send button.

 
Status
Not open for further replies.
Similar threads
Thread starter Title Forum Replies Date
S Macro using .SendUsingAccount only works the first time, after starting Outlook Outlook VBA and Custom Forms 4
J Outlook 2016 Can't display some embedded HTML images in Outlook 2016 Using Outlook 2
J Outlook EAS protocol version Using Outlook 1
N Outlook 2021 'Run Script" Rules? Outlook VBA and Custom Forms 4
C Why does Outlook (desktop) 365 for Windows keep making me input my passwords? Using Outlook 8
P Comcast IMAP broken but their second level support said to call "the Outlook company" Using Outlook 4
bdsermons Outlook 365 command button in outlook form Outlook VBA and Custom Forms 4
B iCloud telling me my Outlook is not supported Using Outlook 2
cheapfaremart Which outlook version is best? Using Outlook 0
T Outlook 2021 Cannot open attachments Outlook DeskTop 2021 Using Outlook 0
M Outlook settings will not accept a password Using Outlook 9
C Outlook FROM ADDRESS -Outlook.com and Android Using Outlook 1
E Outlook 365 Outlook/VBA Outlook VBA and Custom Forms 11
O How to find and replace a word in Outlook-Agenda-Subject and Message? Using Outlook 0
gproston Why doesn't Outlook remember indexing? Using Outlook 1
X Open Hyperlinks in an Outlook Email Message (Help with Diane's solution) Outlook VBA and Custom Forms 3
J Outlook 2003 .pst Will Not Restore Completely to Outlook 2019 Using Outlook 5
R Outlook Logging Using Outlook 6
e_a_g_l_e_p_i Email notifications changed with Outlook 2021 Using Outlook 8
Y Disable Microsoft Outlook Test Message Using Outlook 5
J Outlook 365 Outlook 2016/365 Contacts Lose Info when Favorited to the To-Do Bar Using Outlook 2
Commodore Are newer versions of Outlook still "less secure" to Google? Using Outlook 22
Commodore Any way to create "from-only" account on Outlook 2021? Using Outlook 1
Z Outlook.com OST Stopped working without explanation Using Outlook.com accounts in Outlook 3
glnz How to retrieve or redo Verizon.net email password without affecting Outlook connection? Using Outlook 1
S New Outlook Appointment - Select All Body Text and Change Font and Size Outlook VBA and Custom Forms 1
V Outlook 2021 Outlook-2021 (64-bit) and iCloud-for-Windows v13.0 - It Works Good. Using Outlook 9
O Outlook 365 - Gmail and Outlook: how to force Outlook to start up in Gmail? Using Outlook 2
M Seeking PDF Recommendation for Outlook that retains links Using Outlook 7
J SCANPST errors Outlook PST repair? Using Outlook 1
L did MS ever add way to text via Outlook Using Outlook 5
M Outlook 365 refuses to send email Using Outlook 1
P How can I stop Outlook 365 duplicating the posts? Using Outlook 2
P How to add a column named categories when searching in Outlook Using Outlook 0
J VBA for outlook to compare and sync between calendar Outlook VBA and Custom Forms 1
D Outlook 2003 Mail Fails Using Outlook 1
K Closing external IMAP email... Outlook 2013 Using Outlook 0
A force outlook to default to MY calendar Using Outlook 3
E Outlook VBA change GetDefaultFolder dynamically Outlook VBA and Custom Forms 6
Owl Export Outlook PDF Attachment as JPG? Outlook VBA and Custom Forms 3
B Seeking help with Outlook rule Using Outlook 2
N Can't create NEW GROUP and add/remove a member from existing Group in Outlook Using Outlook 1
P Outlook tasks keeps changing (updating) dates that I type Using Outlook 2
M I cant send emails via Outlook in my W10 PC. Using Outlook 3
A Outlook Reminders not populating for certain events Using Outlook 2
O Moving "tasks" to inbox in Outlook 2016 Using Outlook 1
S HTML Code Embedded in String Within Open Outlook Email Preventing Replace(Application.ActiveInspector.CurrentItem.HTMLBody From Working Outlook VBA and Custom Forms 4
e_a_g_l_e_p_i Can emails from Gmail be deleted when they are downloaded to Outlook 2010 Using Outlook 1
cbufacchi Outlook 365 Populate custom Outlook Appoint form Outlook VBA and Custom Forms 2
Z Remove GMAIL IMAP account from Outlook 2016 Using Outlook 2

Similar threads

Top