![]() |
Adding a header item with MAPI
Hi,
I have developed an ATL/C++ add-in that I want to add a header item to a _MailItem before I forward the email. The idea is that I take an item out of the inbox, modify the header and then forward it to another email address. I see there are Redemption examples; but I do not want to use the redemption libraries. Is there an extended MAPI example that will show me how to accomplish this? I do not want to use any third party utilities. I have looked for examples on the web but I do not see any. Thanks, Tom - |
Adding a header item with MAPI
1. Read MailItem.MAPIOBJECT property
2. QI it for IMessage Extended MAPI interface 3. Call IMessage::GetIDsFromNames() passing the appropriate GUID and id 4. "Or" the retirned tag with the appropriate type (PT_STRING8) 5. Use Imessage::SetProps or HrSetOneProp to set the property with tag from #4. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi, I have developed an ATL/C++ add-in that I want to add a header item to a _MailItem before I forward the email. The idea is that I take an item out of the inbox, modify the header and then forward it to another email address. I see there are Redemption examples; but I do not want to use the redemption libraries. Is there an extended MAPI example that will show me how to accomplish this? I do not want to use any third party utilities. I have looked for examples on the web but I do not see any. Thanks, Tom - |
Adding a header item with MAPI
Thanks Dmitry - I will give that a try. I was using the following code
snippit but it seemed not to be working properly IUnknownPtr pUnk = spForward-GetMAPIOBJECT(); CComQIPtrIMAPIProp, &IID_IMAPIProp pMAPIProp(pUnk); ATLASSERT(pMAPIProp); SPropTagArray ar = {0}; ULONG nProps = 0; SPropValue *arProps = NULL; TCHAR*szResult = NULL; ar.cValues = 1; ar.aulPropTag[0] = PR_TRANSPORT_MESSAGE_HEADERS; pMAPIProp-GetProps(&ar, PT_UNSPECIFIED, &nProps, &arProps); "Dmitry Streblechenko" wrote: 1. Read MailItem.MAPIOBJECT property 2. QI it for IMessage Extended MAPI interface 3. Call IMessage::GetIDsFromNames() passing the appropriate GUID and id 4. "Or" the retirned tag with the appropriate type (PT_STRING8) 5. Use Imessage::SetProps or HrSetOneProp to set the property with tag from #4. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi, I have developed an ATL/C++ add-in that I want to add a header item to a _MailItem before I forward the email. The idea is that I take an item out of the inbox, modify the header and then forward it to another email address. I see there are Redemption examples; but I do not want to use the redemption libraries. Is there an extended MAPI example that will show me how to accomplish this? I do not want to use any third party utilities. I have looked for examples on the web but I do not see any. Thanks, Tom - |
Adding a header item with MAPI
Setting PR_TRANSPORT_MESSAGE_HEADERS on an outgoing message won't do
anything... Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Thanks Dmitry - I will give that a try. I was using the following code snippit but it seemed not to be working properly IUnknownPtr pUnk = spForward-GetMAPIOBJECT(); CComQIPtrIMAPIProp, &IID_IMAPIProp pMAPIProp(pUnk); ATLASSERT(pMAPIProp); SPropTagArray ar = {0}; ULONG nProps = 0; SPropValue *arProps = NULL; TCHAR*szResult = NULL; ar.cValues = 1; ar.aulPropTag[0] = PR_TRANSPORT_MESSAGE_HEADERS; pMAPIProp-GetProps(&ar, PT_UNSPECIFIED, &nProps, &arProps); "Dmitry Streblechenko" wrote: 1. Read MailItem.MAPIOBJECT property 2. QI it for IMessage Extended MAPI interface 3. Call IMessage::GetIDsFromNames() passing the appropriate GUID and id 4. "Or" the retirned tag with the appropriate type (PT_STRING8) 5. Use Imessage::SetProps or HrSetOneProp to set the property with tag from #4. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi, I have developed an ATL/C++ add-in that I want to add a header item to a _MailItem before I forward the email. The idea is that I take an item out of the inbox, modify the header and then forward it to another email address. I see there are Redemption examples; but I do not want to use the redemption libraries. Is there an extended MAPI example that will show me how to accomplish this? I do not want to use any third party utilities. I have looked for examples on the web but I do not see any. Thanks, Tom - |
Adding a header item with MAPI
Now it makes sense. :-)
I have been looking for a book or some reference material on MAPI programming and I have yet to find one. I have a book written by Dave Grundgeiger; but it is very high level, uses VB and really is a CDO reference. Do you have any book recommendations? Thanks! "Dmitry Streblechenko" wrote: Setting PR_TRANSPORT_MESSAGE_HEADERS on an outgoing message won't do anything... Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Thanks Dmitry - I will give that a try. I was using the following code snippit but it seemed not to be working properly IUnknownPtr pUnk = spForward-GetMAPIOBJECT(); CComQIPtrIMAPIProp, &IID_IMAPIProp pMAPIProp(pUnk); ATLASSERT(pMAPIProp); SPropTagArray ar = {0}; ULONG nProps = 0; SPropValue *arProps = NULL; TCHAR*szResult = NULL; ar.cValues = 1; ar.aulPropTag[0] = PR_TRANSPORT_MESSAGE_HEADERS; pMAPIProp-GetProps(&ar, PT_UNSPECIFIED, &nProps, &arProps); "Dmitry Streblechenko" wrote: 1. Read MailItem.MAPIOBJECT property 2. QI it for IMessage Extended MAPI interface 3. Call IMessage::GetIDsFromNames() passing the appropriate GUID and id 4. "Or" the retirned tag with the appropriate type (PT_STRING8) 5. Use Imessage::SetProps or HrSetOneProp to set the property with tag from #4. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi, I have developed an ATL/C++ add-in that I want to add a header item to a _MailItem before I forward the email. The idea is that I take an item out of the inbox, modify the header and then forward it to another email address. I see there are Redemption examples; but I do not want to use the redemption libraries. Is there an extended MAPI example that will show me how to accomplish this? I do not want to use any third party utilities. I have looked for examples on the web but I do not see any. Thanks, Tom - |
Adding a header item with MAPI
"Inside MAPI" is the omly MAPI book ever published - it's been out of print
for ages, but you can get it in the PDF format from http://www.insidemapi.com It won't cover this particular question of course :-) Otherwise just post your questions to the microsoft.public.win32.programmer.messaging newsgroup or use the MAPI list (http://peach.ease.lsoft.com/Archives/mapi-l.html). Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Now it makes sense. :-) I have been looking for a book or some reference material on MAPI programming and I have yet to find one. I have a book written by Dave Grundgeiger; but it is very high level, uses VB and really is a CDO reference. Do you have any book recommendations? Thanks! "Dmitry Streblechenko" wrote: Setting PR_TRANSPORT_MESSAGE_HEADERS on an outgoing message won't do anything... Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Thanks Dmitry - I will give that a try. I was using the following code snippit but it seemed not to be working properly IUnknownPtr pUnk = spForward-GetMAPIOBJECT(); CComQIPtrIMAPIProp, &IID_IMAPIProp pMAPIProp(pUnk); ATLASSERT(pMAPIProp); SPropTagArray ar = {0}; ULONG nProps = 0; SPropValue *arProps = NULL; TCHAR*szResult = NULL; ar.cValues = 1; ar.aulPropTag[0] = PR_TRANSPORT_MESSAGE_HEADERS; pMAPIProp-GetProps(&ar, PT_UNSPECIFIED, &nProps, &arProps); "Dmitry Streblechenko" wrote: 1. Read MailItem.MAPIOBJECT property 2. QI it for IMessage Extended MAPI interface 3. Call IMessage::GetIDsFromNames() passing the appropriate GUID and id 4. "Or" the retirned tag with the appropriate type (PT_STRING8) 5. Use Imessage::SetProps or HrSetOneProp to set the property with tag from #4. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi, I have developed an ATL/C++ add-in that I want to add a header item to a _MailItem before I forward the email. The idea is that I take an item out of the inbox, modify the header and then forward it to another email address. I see there are Redemption examples; but I do not want to use the redemption libraries. Is there an extended MAPI example that will show me how to accomplish this? I do not want to use any third party utilities. I have looked for examples on the web but I do not see any. Thanks, Tom - |
Adding a header item with MAPI
Thanks Dmitry - I ordered a used book.
"Dmitry Streblechenko" wrote: "Inside MAPI" is the omly MAPI book ever published - it's been out of print for ages, but you can get it in the PDF format from http://www.insidemapi.com It won't cover this particular question of course :-) Otherwise just post your questions to the microsoft.public.win32.programmer.messaging newsgroup or use the MAPI list (http://peach.ease.lsoft.com/Archives/mapi-l.html). Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Now it makes sense. :-) I have been looking for a book or some reference material on MAPI programming and I have yet to find one. I have a book written by Dave Grundgeiger; but it is very high level, uses VB and really is a CDO reference. Do you have any book recommendations? Thanks! "Dmitry Streblechenko" wrote: Setting PR_TRANSPORT_MESSAGE_HEADERS on an outgoing message won't do anything... Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Thanks Dmitry - I will give that a try. I was using the following code snippit but it seemed not to be working properly IUnknownPtr pUnk = spForward-GetMAPIOBJECT(); CComQIPtrIMAPIProp, &IID_IMAPIProp pMAPIProp(pUnk); ATLASSERT(pMAPIProp); SPropTagArray ar = {0}; ULONG nProps = 0; SPropValue *arProps = NULL; TCHAR*szResult = NULL; ar.cValues = 1; ar.aulPropTag[0] = PR_TRANSPORT_MESSAGE_HEADERS; pMAPIProp-GetProps(&ar, PT_UNSPECIFIED, &nProps, &arProps); "Dmitry Streblechenko" wrote: 1. Read MailItem.MAPIOBJECT property 2. QI it for IMessage Extended MAPI interface 3. Call IMessage::GetIDsFromNames() passing the appropriate GUID and id 4. "Or" the retirned tag with the appropriate type (PT_STRING8) 5. Use Imessage::SetProps or HrSetOneProp to set the property with tag from #4. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi, I have developed an ATL/C++ add-in that I want to add a header item to a _MailItem before I forward the email. The idea is that I take an item out of the inbox, modify the header and then forward it to another email address. I see there are Redemption examples; but I do not want to use the redemption libraries. Is there an extended MAPI example that will show me how to accomplish this? I do not want to use any third party utilities. I have looked for examples on the web but I do not see any. Thanks, Tom - |
Adding a header item with MAPI
Hi Again Dmitry,
I ran into a slight issue that I seem not to be able to fix. I am adding the header information to my out going message; but is seems as though it always adds the header information as lower case. Is there a way to tell mapi to ignore the case? In other words if I add a header like "X-MyHeader" it will show up as "x-myheader". Thanks, Tom - "Dmitry Streblechenko" wrote: 1. Read MailItem.MAPIOBJECT property 2. QI it for IMessage Extended MAPI interface 3. Call IMessage::GetIDsFromNames() passing the appropriate GUID and id 4. "Or" the retirned tag with the appropriate type (PT_STRING8) 5. Use Imessage::SetProps or HrSetOneProp to set the property with tag from #4. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi, I have developed an ATL/C++ add-in that I want to add a header item to a _MailItem before I forward the email. The idea is that I take an item out of the inbox, modify the header and then forward it to another email address. I see there are Redemption examples; but I do not want to use the redemption libraries. Is there an extended MAPI example that will show me how to accomplish this? I do not want to use any third party utilities. I have looked for examples on the web but I do not see any. Thanks, Tom - |
Adding a header item with MAPI
AFAIK that's just what the SMTP provider does.
Why is this important? According to all the RFCs MIME headers are not case sensitive. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi Again Dmitry, I ran into a slight issue that I seem not to be able to fix. I am adding the header information to my out going message; but is seems as though it always adds the header information as lower case. Is there a way to tell mapi to ignore the case? In other words if I add a header like "X-MyHeader" it will show up as "x-myheader". Thanks, Tom - "Dmitry Streblechenko" wrote: 1. Read MailItem.MAPIOBJECT property 2. QI it for IMessage Extended MAPI interface 3. Call IMessage::GetIDsFromNames() passing the appropriate GUID and id 4. "Or" the retirned tag with the appropriate type (PT_STRING8) 5. Use Imessage::SetProps or HrSetOneProp to set the property with tag from #4. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi, I have developed an ATL/C++ add-in that I want to add a header item to a _MailItem before I forward the email. The idea is that I take an item out of the inbox, modify the header and then forward it to another email address. I see there are Redemption examples; but I do not want to use the redemption libraries. Is there an extended MAPI example that will show me how to accomplish this? I do not want to use any third party utilities. I have looked for examples on the web but I do not see any. Thanks, Tom - |
Adding a header item with MAPI
Oh! Okay. I noticed that all the other header elements were not lower case -
that is why I asked. I don't think it will matter; but I had to ask the question. Thanks, Tom - "Dmitry Streblechenko" wrote: AFAIK that's just what the SMTP provider does. Why is this important? According to all the RFCs MIME headers are not case sensitive. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi Again Dmitry, I ran into a slight issue that I seem not to be able to fix. I am adding the header information to my out going message; but is seems as though it always adds the header information as lower case. Is there a way to tell mapi to ignore the case? In other words if I add a header like "X-MyHeader" it will show up as "x-myheader". Thanks, Tom - "Dmitry Streblechenko" wrote: 1. Read MailItem.MAPIOBJECT property 2. QI it for IMessage Extended MAPI interface 3. Call IMessage::GetIDsFromNames() passing the appropriate GUID and id 4. "Or" the retirned tag with the appropriate type (PT_STRING8) 5. Use Imessage::SetProps or HrSetOneProp to set the property with tag from #4. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Tom at GSD" wrote in message ... Hi, I have developed an ATL/C++ add-in that I want to add a header item to a _MailItem before I forward the email. The idea is that I take an item out of the inbox, modify the header and then forward it to another email address. I see there are Redemption examples; but I do not want to use the redemption libraries. Is there an extended MAPI example that will show me how to accomplish this? I do not want to use any third party utilities. I have looked for examples on the web but I do not see any. Thanks, Tom - |
All times are GMT +1. The time now is 12:29 PM. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com