Why is OL not keeping the correct sender account?

Status
Not open for further replies.
K

Kukulkan

Hello,

I like to manipulate a mail before sending. But after modifying

(subject, message, attachments), the e-mail gets allways sent using

the default account and not using the selected account (VB6 COM AddIn

using Redemption Objects):

To trace the problem I made a little routine to find out which sender

currently is selected for a given Mailobject:

Public Function GetMailSenderAccountName(ByRef Mailobject As Object)

Dim RDOSession As Redemption.RDOSession

Dim RDOMessage As Redemption.RDOMail

Mailobject.Save ' needed to get an EntryID

Set RDOSession = CreateObject("Redemption.RDOSession")

RDOSession.MAPIOBJECT = Application.Session.MAPIOBJECT

Set RDOMessage = RDOSession.GetMessageFromID(Mailobject.EntryID)

GetMailSenderAccountName = RDOMessage.Account.Name

End Function

Using the following code, I get allways the correct account:

Set MyItem = ConnectClass.VBInstance.Session.GetItemFromID(ItemID)

Debug.Print "Before sending: " & GetMailSenderAccountName(MyItem) -
"smtp.correct.com"

RedemptionMail.Item = MyItem ' use redemption objects here (needed?)

RedemptionMail.Send

Debug.Print "After sending: " & GetMailSenderAccountName(MyItem) -
"smtp.correct.com"

But the mail has been sent using the wrong account (default account).

The "smtp.correct.com" account is working great, if I do not use the

methods above. Same problem using OL2003 and OL2007.

What can I do to keep the selected account for sending?

Thank you,

Kukulkan
 
K

Kukulkan

Hello,

I found a solution to this problem. I simply needed to set the Account

again to let Outlook do what I want. The following way helped me out:

Public Function SendUsingRDO(ByRef Mailobject As Object)

Dim RDOSession As Redemption.RDOSession

Dim RDOMessage As Redemption.RDOMail

Dim RDOAccount As Redemption.RDOAccount

' save the mail, in case it is not saved until now

Mailobject.Save

Set RDOSession = CreateObject("Redemption.RDOSession")

RDOSession.MAPIOBJECT = Application.Session.MAPIOBJECT

Set RDOMessage = RDOSession.GetMessageFromID(Mailobject.EntryID)

Set RDOAccount = RDOMessage.Account ' get account

If Not RDOAccount Is Nothing Then

' set the account again

RDOMessage.Account = RDOSession.Accounts(RDOAccount.Name)

RDOMessage.Save

End If

RDOMessage.Send

SendUsingRDO = True

End Function

At first I read the Account that is used (reading). Upon this, I set

this value again (writing). Now calling the .Send method forces

Outlook to use the account that has been set but ignored. Strange...

Kukulkan
 
Status
Not open for further replies.
Top