Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Add-ins for Outlook (http://www.outlookbanter.com/add-ins-outlook/)
-   -   Adding a header item with MAPI (http://www.outlookbanter.com/add-ins-outlook/36961-adding-header-item-mapi.html)

Tom at GSD January 5th 07 11:58 PM

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 -



Dmitry Streblechenko January 6th 07 07:18 AM

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 -





Tom at GSD January 6th 07 04:08 PM

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 -






Dmitry Streblechenko January 6th 07 04:17 PM

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 -








Tom at GSD January 6th 07 05:01 PM

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 -









Dmitry Streblechenko January 6th 07 05:48 PM

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 -











Tom at GSD January 6th 07 06:18 PM

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 -












Tom at GSD January 8th 07 06:14 PM

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 -






Dmitry Streblechenko January 8th 07 06:42 PM

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 -








Tom at GSD January 8th 07 06:54 PM

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