Is there a 'Post send' event for an email

  • Thread starter Thread starter Darshan
  • Start date Start date
D

Darshan

Hi,

I am writing an Outlook Add-in (in Visual C++) through which I need to
identify all outgoing emails that are digitally signed (S/MIME).
Using the 'ItemSend' event does not help since it triggers my event handler
before digitally signing the email. The value of the PR_MESSAGE_CLASS in my
event handler is simply "IPM" but after the email is sent the value shows
"IPM.Note.SMIME.MultipartSigned".

Is there a way to trigger my event handler after all other operations on the
email have been completed? And also, I want to be able to cancle the sending
of the email through my event handler, similar to what ItemSend provides.

Thanks,
Darshan
 
The change is made after the item is sent and no longer accessible to any
event handler in Outlook. You could trap the ItemAdd event on the Items
collection of the Sent Items folder but by then the item has already been
changed and depending on settings might not even go to Sent Items.
 
Thanks for the info.

I also read something about the ISpoolerHook Interface in MAPI. Will that be
helpful to achieve my purpose? or even that will trigger after the email has
been sent?
Also, the description of the ISpoolerHook interface reaised a doubt in my
mind that will I, as an Add-in writer, be able to use/implement it?

Apart from that, I can see that when I send an email, the "Digitall Sign"
button (on the email window) is pressed. Is it possible to somehow track the
status (button_down/button_up) of this button inside the ItemSend event
handler? And would that be a reliable way to track if my email is going to
be digitally signed?

Please let me know if there is any way at all, using which I can track such
emails in Outlook?

Thanks,
Darshan
 
I have no idea about any MAPI hooks, but if you intend to program in
Extended MAPI you can only do it using C++ or Delphi. You'd have to ask
about the hook in microsoft.public.win32.programmer.messaging, a group for
MAPI.

You can get that button's ID and find it and check its state. I have no idea
what the ID would be however. If you use OutlookSpy you can use the
Inspector button in an open email and go to the CommandBars tab to find the
ID you'd need.
 
Thanks Ken. It did work. I got the button, and its status, correctly, but
there is still a small problem.

I got the code working to fetch the button status, but it does not work if
Outlook is using Microsoft Word to compose its emails. If Word is being
used, then it is just not possible to get to the button programatically.
I found the same problem being encountered by other people on
Outlookcode.com. And there seems to be no solution for it. Please share with
me if you are aware of any solution for this.

Thanks anyway,
Darshan
 
WordMail is weird and wonderful and a royal PITA.

For use with WordMail I iterate the CommandBars collection looking for my
CommandBar and then re-instantiating the button object to be able to change
State. Your existing button object will fire Click() for example but even in
that event handler trying to change State will fire an exception. You must
re-instantiate the button from the object retrieved from Word.Document and
then you can change State.
 
Back
Top