PC Review


Reply
Thread Tools Rate Thread

Re: Outlook SendUsingAccount to change from account

 
 
Ken Slovak - [MVP - Outlook]
Guest
Posts: n/a
 
      8th Jun 2009
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.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"p912s" <(E-Mail Removed)> wrote in message
news(E-Mail Removed)...
>
> 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
>
>
> --
> p912s
> ------------------------------------------------------------------------
> p912s's Profile: http://www.thecodecage.com/forumz/member.php?userid=393
> View this thread:
> http://www.thecodecage.com/forumz/sh...d.php?t=104268
>


 
Reply With Quote
 
 
 
 
Ken Slovak - [MVP - Outlook]
Guest
Posts: n/a
 
      8th Jun 2009
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.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"p912s" <(E-Mail Removed)> wrote in message
news(E-Mail Removed)...
<snip>
> 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
> ------------------------------------------------------------------------
> p912s's Profile: http://www.thecodecage.com/forumz/member.php?userid=393
> View this thread:
> http://www.thecodecage.com/forumz/sh...d.php?t=104268
>


 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
VBA to send email via outlook. Sendusingaccount Boon Microsoft Access Form Coding 10 18th May 2011 08:34 AM
Outlook automation - SendUsingAccount readonly? Pavel Celba Microsoft Outlook Interoperability 6 23rd Sep 2010 05:57 PM
Access - Outlook Mail Automation: SendUsingAccount LeeTV Microsoft Access Form Coding 1 19th Apr 2010 08:04 PM
SendUsingAccount to change from account p912s Microsoft Outlook VBA Programming 2 9th Jun 2009 03:56 PM
Outlook 2007: SendUsingAccount - update infobar mark.terhofen@yahoo.de Microsoft Outlook VBA Programming 6 22nd Jul 2008 01:39 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 07:36 PM.