Help!

Outlook SendUsingAccount to change from account

 
  

Post new topic   General Reply to Topic (not reply to a specific post)    Forums Home -> Programming VBA RSS
Next:  Sum until hit blank  
Author Message
p912s
External


Since: Jun 07, 2009
Posts: 1



PostPosted: Sun Jun 07, 2009 10:10 am    Post subject: Outlook SendUsingAccount to change from account
Archived from groups: microsoft>public>outlook>program_vba (more info?)

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/showthread.php?t=104268
Back to top
Ken Slovak - [MVP - Outlo
External


Since: Oct 17, 2003
Posts: 3355



PostPosted: Mon Jun 08, 2009 9:01 am    Post subject: Re: Outlook SendUsingAccount to change from account [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

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" <p912s.3tev8x DeleteThis @thecodecage.com> wrote in message
news:p912s.3tev8x@thecodecage.com...
>
> 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/showthread.php?t=104268
>
Back to top
p912s
External


Since: Jun 08, 2009
Posts: 1



PostPosted: Mon Jun 08, 2009 1:10 pm    Post subject: Re: Outlook SendUsingAccount to change from account [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

'Ken Slovak - [MVP - Outlook Wrote:
> ;373238']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]
> 'Slovak Technical Services Home' (http://www.slovaktech.com)
> Author: Professional Programming Outlook 2007.
> Reminder Manager, Extended Reminders, Attachment Options.
> 'Slovak Technical Services Products'
> (http://www.slovaktech.com/products.htm)
> >[/color]

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/showthread.php?t=104268
Back to top
Ken Slovak - [MVP - Outlo
External


Since: Oct 17, 2003
Posts: 3355



PostPosted: Mon Jun 08, 2009 1:22 pm    Post subject: Re: Outlook SendUsingAccount to change from account [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

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" <p912s.3tgzt1.DeleteThis@thecodecage.com> wrote in message
news:p912s.3tgzt1@thecodecage.com...
<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/showthread.php?t=104268
>
Back to top
Pecoflyer
External


Since: Jun 08, 2009
Posts: 1



PostPosted: Mon Jun 08, 2009 4:10 pm    Post subject: Re: Outlook SendUsingAccount to change from account [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Code Tags



Hi, I amended your posts for you


--
Pecoflyer

Cheers -
------------------------------------------------------------------------
Pecoflyer's Profile: http://www.thecodecage.com/forumz/member.php?userid=14
View this thread: http://www.thecodecage.com/forumz/showthread.php?t=104268
Back to top
p912s
External


Since: Jun 09, 2009
Posts: 1



PostPosted: Mon Jun 08, 2009 9:10 pm    Post subject: Re: Outlook SendUsingAccount to change from account [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Pecoflyer;373839 Wrote:
> Code Tags
>
>
>
> Hi, I amended your posts for you

Thanks for taking care of that!


--
p912s
------------------------------------------------------------------------
p912s's Profile: http://www.thecodecage.com/forumz/member.php?userid=393
View this thread: http://www.thecodecage.com/forumz/showthread.php?t=104268
Back to top
Display posts from previous:   
Post new topic   General Reply to Topic (not reply to a specific post)    Forums Home -> Programming VBA All times are: Eastern Time (US & Canada) (change)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum