Roger Levy
Posts: 5
Joined: 2017-03-28
|
I catch the Outlook Send event and add to the email that the user has composed by adding to MailItem.body. However in some cases I need to send a completely different second email to the same recipients. Because I cannot always determine the sender's email address (my last topic) I decided to copy the mail item and delete everything that the user wrote by doing this ...
Dim oDoc As Word.Document = TryCast(oOpenMail.GetInspector.WordEditor, Word.Document)
oDoc.Range(0, oOpenMail.Body.Length - 1).Delete(Word.WdUnits.wdCharacter)
I then hope to add a new html body. The deletion seems to work but there is a prompt asking whether the document should be saved. I have searched a lot of articles and forums but I cannot find a method that both accepts my edits and does not prompt. |
|
Andrei Smolin
Add-in Express team
Posts: 18830
Joined: 2006-05-11
|
Hello Roger,
To avoid the prompt, save the item yourself.
Andrei Smolin
Add-in Express Team Leader |
|
Roger Levy
Posts: 5
Joined: 2017-03-28
|
I tried SaveAs on both the editor document and Outlook message but neither prevented the prompt from appearing. Since I couldn't successfully edit the original MailItem I copied it and worked on the copy. It seems that there is no active editor on a copy so I didn't encounter a problem about saving changes. I was able to do what I wanted with the copy by assigning to .body and .htmlbody. This worked for me because I was sending 2 emails but I think I would still be in trouble if my need was to edit only the original and send it. BTW, this is Outlook 2003, if that matters.
Roger |
|
Andrei Smolin
Add-in Express team
Posts: 18830
Joined: 2006-05-11
|
Hello Roger,
If you call MaitItem.Copy to create a copy of the specified email, and modify the copy, you should call MailItem.Save on the copy. Not MailItem.SaveAs.
Roger Levy writes:
It seems that there is no active editor on a copy
Are you saying that calling Inspector.WordEditor for the copy email returns Nothing?
Roger Levy writes:
Dim oDoc As Word.Document = TryCast(oOpenMail.GetInspector.WordEditor, Word.Document)
I assume that you release the oDoc and oOpenMail variables. Still, oOpenMail.GetInspector creates and leaves unreleased an Inspector object: you need to release it.
Andrei Smolin
Add-in Express Team Leader |
|