Create one-off that does send winmail.dat

Status
Not open for further replies.
N

Nick

For years we've used the "Exchange Extensions" function SetRecipients() that

lets you use Extended MAPI to create an address list and then add that list

to a message that the user is composing. Of course with Outlook 2010

Exchange Extensions are gone. This functionality is required because we need

to create one-off addresses that force winmail.dat to be sent to the

recipient. I know that most people want to get rid of winmail.dat, but we

need it because our users can send messages to our SMTP gateway that parses

winmail.dat. This SMTP gateway is "legacy" code that I can't change.

Using the newer Outlook object model and adding recipients to a MailItem

would be nice, if only it would allow me to enable the "send rich info"

behavior. But it appears that Microsoft has eliminated this functionality by

not providing a means for a programmer to create a one-off in a message that

is being composed that would force winmail.dat to be sent to the recipient

(you can do this manually in Outlook by changing the "Internet format" for an

address to "Send using Outlook Rich Text format").

I'm familiar with Extended MAPI, so I've tried using ModifyRecipients() to

add a one-off to a IMessage obtained from a MailItem.MAPIOBJECT, but there

appears to be a disconnect between the Extended MAPI world and the MailItem,

and the recipients in the MailItem are not changed (don't appear). Also,

I've tried using the object model technique, adding a recipient like so

"Name[EX:mygateway@domain.com]" that causes Outlook to enable the "send rich

info" the way I want, but that's not the address I want to send to, I want it

to go via SMTP to "mygateway@domain.com" and not an EX: address.

I know how to write add-ins and create ribbons for user-interface changes,

but I'm at a loss for how to add a one-off recipient to a message that a user

is composing, that forces the properties to send winmail.dat to that

recipient (i.e., Internet format = Send using Outlook Rich Text format), and

have that new address appear in the list of recipients that the user sees.

Any suggestions? Thanks in advance...
 
When exactly do you add the recipients? When yo uare using Extended MAPi

(be that from ECE or from MailItem.MAPIOBJECT), OOM has hard time seeing the

changes, but there are some workarounds.

Dmitry Streblechenko (MVP)

-

"Nick" <npeck@community.nospam> wrote in message

news:9EDADBD5-899D-49DB-9665-003A158440FC@microsoft.com...
> For years we've used the "Exchange Extensions" function SetRecipients()
> that
> lets you use Extended MAPI to create an address list and then add that
> list
> to a message that the user is composing. Of course with Outlook 2010
> Exchange Extensions are gone. This functionality is required because we
> need
> to create one-off addresses that force winmail.dat to be sent to the
> recipient. I know that most people want to get rid of winmail.dat, but we
> need it because our users can send messages to our SMTP gateway that
> parses
> winmail.dat. This SMTP gateway is "legacy" code that I can't change.

> Using the newer Outlook object model and adding recipients to a MailItem
> would be nice, if only it would allow me to enable the "send rich info"
> behavior. But it appears that Microsoft has eliminated this functionality
> by
> not providing a means for a programmer to create a one-off in a message
> that
> is being composed that would force winmail.dat to be sent to the recipient
> (you can do this manually in Outlook by changing the "Internet format" for
> an
> address to "Send using Outlook Rich Text format").

> I'm familiar with Extended MAPI, so I've tried using ModifyRecipients() to
> add a one-off to a IMessage obtained from a MailItem.MAPIOBJECT, but there
> appears to be a disconnect between the Extended MAPI world and the
> MailItem,
> and the recipients in the MailItem are not changed (don't appear). Also,
> I've tried using the object model technique, adding a recipient like so
> "Name[EX:mygateway@domain.com]" that causes Outlook to enable the "send
> rich
> info" the way I want, but that's not the address I want to send to, I want
> it
> to go via SMTP to "mygateway@domain.com" and not an EX: address.

> I know how to write add-ins and create ribbons for user-interface changes,
> but I'm at a loss for how to add a one-off recipient to a message that a
> user
> is composing, that forces the properties to send winmail.dat to that
> recipient (i.e., Internet format = Send using Outlook Rich Text format),
> and
> have that new address appear in the list of recipients that the user sees.

> Any suggestions? Thanks in advance...
 
Hi Dmitry,

For Outlook 2010 I have a ribbon with a RibbonType of

Microsoft.Outlook.Mail.Compose, and when the user clicks a button in my

ribbon I open a dialog to get some information, and then add the recipient.

The process is interactive with the user because it's done during the mail

compose user interface.

private void button1_Click(object sender,RibbonControlEventArgs e)

{

Outlook.Application application = Globals.ThisAddIn.Application;

Outlook.Inspector inspector = application.ActiveInspector();

Outlook.MailItem myMailItem = (Outlook.MailItem)inspector.CurrentItem;

// show my dialog to get some info, then add the recipient

}

"Dmitry Streblechenko" wrote:


> When exactly do you add the recipients? When yo uare using Extended MAPi
> (be that from ECE or from MailItem.MAPIOBJECT), OOM has hard time seeing the
> changes, but there are some workarounds.

> > Dmitry Streblechenko (MVP)
>

>

>

> -
> "Nick" <npeck@community.nospam> wrote in message
> news:9EDADBD5-899D-49DB-9665-003A158440FC@microsoft.com...
> > For years we've used the "Exchange Extensions" function SetRecipients()
> > that
> > lets you use Extended MAPI to create an address list and then add that
> > list
> > to a message that the user is composing. Of course with Outlook 2010
> > Exchange Extensions are gone. This functionality is required because we
> > need
> > to create one-off addresses that force winmail.dat to be sent to the
> > recipient. I know that most people want to get rid of winmail.dat, but we
> > need it because our users can send messages to our SMTP gateway that
> > parses
> > winmail.dat. This SMTP gateway is "legacy" code that I can't change.
> > Using the newer Outlook object model and adding recipients to a MailItem
> > would be nice, if only it would allow me to enable the "send rich info"
> > behavior. But it appears that Microsoft has eliminated this functionality
> > by
> > not providing a means for a programmer to create a one-off in a message
> > that
> > is being composed that would force winmail.dat to be sent to the recipient
> > (you can do this manually in Outlook by changing the "Internet format" for
> > an
> > address to "Send using Outlook Rich Text format").
> > I'm familiar with Extended MAPI, so I've tried using ModifyRecipients() to
> > add a one-off to a IMessage obtained from a MailItem.MAPIOBJECT, but there
> > appears to be a disconnect between the Extended MAPI world and the
> > MailItem,
> > and the recipients in the MailItem are not changed (don't appear). Also,
> > I've tried using the object model technique, adding a recipient like so
> > "Name[EX:mygateway@domain.com]" that causes Outlook to enable the "send
> > rich
> > info" the way I want, but that's not the address I want to send to, I want
> > it
> > to go via SMTP to "mygateway@domain.com" and not an EX: address.
> > I know how to write add-ins and create ribbons for user-interface changes,
> > but I'm at a loss for how to add a one-off recipient to a message that a
> > user
> > is composing, that forces the properties to send winmail.dat to that
> > recipient (i.e., Internet format = Send using Outlook Rich Text format),
> > and
> > have that new address appear in the list of recipients that the user sees.
> > Any suggestions? Thanks in advance...


> .
>
 
I found that the recipients can be accessed and modified by Extended MAPI in

the message at MailItem.MAPIOBJECT, but only when the

MailItem.BeforeCheckNames event is called when the user clicks Send. So I'm

able to add a recipient using the object model while the message is being

composed (the user can see the new recipient), and then when the user clicks

Send I can use Extended MAPI to modify recipients going to my gateway,

replacing the recipient with a new one-off making sure that "send rich info"

is enabled. Not ideal, but it seems to work. I hope that Microsoft doesn't

remove the ability to modify recipients with Extended MAPI off of the

BeforeCheckNames event, or I would have a real problem!

"Dmitry Streblechenko" wrote:


> When exactly do you add the recipients? When yo uare using Extended MAPi
> (be that from ECE or from MailItem.MAPIOBJECT), OOM has hard time seeing the
> changes, but there are some workarounds.

> > Dmitry Streblechenko (MVP)
>

>

>

> -
> "Nick" <npeck@community.nospam> wrote in message
> news:9EDADBD5-899D-49DB-9665-003A158440FC@microsoft.com...
> > For years we've used the "Exchange Extensions" function SetRecipients()
> > that
> > lets you use Extended MAPI to create an address list and then add that
> > list
> > to a message that the user is composing. Of course with Outlook 2010
> > Exchange Extensions are gone. This functionality is required because we
> > need
> > to create one-off addresses that force winmail.dat to be sent to the
> > recipient. I know that most people want to get rid of winmail.dat, but we
> > need it because our users can send messages to our SMTP gateway that
> > parses
> > winmail.dat. This SMTP gateway is "legacy" code that I can't change.
> > Using the newer Outlook object model and adding recipients to a MailItem
> > would be nice, if only it would allow me to enable the "send rich info"
> > behavior. But it appears that Microsoft has eliminated this functionality
> > by
> > not providing a means for a programmer to create a one-off in a message
> > that
> > is being composed that would force winmail.dat to be sent to the recipient
> > (you can do this manually in Outlook by changing the "Internet format" for
> > an
> > address to "Send using Outlook Rich Text format").
> > I'm familiar with Extended MAPI, so I've tried using ModifyRecipients() to
> > add a one-off to a IMessage obtained from a MailItem.MAPIOBJECT, but there
> > appears to be a disconnect between the Extended MAPI world and the
> > MailItem,
> > and the recipients in the MailItem are not changed (don't appear). Also,
> > I've tried using the object model technique, adding a recipient like so
> > "Name[EX:mygateway@domain.com]" that causes Outlook to enable the "send
> > rich
> > info" the way I want, but that's not the address I want to send to, I want
> > it
> > to go via SMTP to "mygateway@domain.com" and not an EX: address.
> > I know how to write add-ins and create ribbons for user-interface changes,
> > but I'm at a loss for how to add a one-off recipient to a message that a
> > user
> > is composing, that forces the properties to send winmail.dat to that
> > recipient (i.e., Internet format = Send using Outlook Rich Text format),
> > and
> > have that new address appear in the list of recipients that the user sees.
> > Any suggestions? Thanks in advance...


> .
>
 
Status
Not open for further replies.
Similar threads
Thread starter Title Forum Replies Date
J OL2010 Create a new task while off line Exchange Server Administration 3
S Create Outlook Task from Template and append Body with Email Body Outlook VBA and Custom Forms 4
B Modify VBA to create a RULE to block multiple messages Outlook VBA and Custom Forms 0
J Want to create a button on the nav bar (module add-in) to run code Outlook VBA and Custom Forms 2
B How to create a button that sorts and selects the most recent message with ONE click Using Outlook 2
J PSA: How to create custom keyboard shortcut for "Paste Unformatted Text" in Outlook on Windows Outlook VBA and Custom Forms 1
W Create a Quick Step or VBA to SAVE AS PDF in G:|Data|Client File Outlook VBA and Custom Forms 1
Wotme create email only data file Using Outlook 1
S Outlook 365 Help me create a Macro to make some received emails into tasks? Outlook VBA and Custom Forms 1
J How to create a drop down user defined field that will appear on an inbox view Outlook VBA and Custom Forms 8
Commodore Any way to create "from-only" account on Outlook 2021? Using Outlook 1
L Capture email addresses and create a comma separated list Outlook VBA and Custom Forms 5
N Can't create NEW GROUP and add/remove a member from existing Group in Outlook Using Outlook 1
NVDon Create new Move To Folder list Outlook VBA and Custom Forms 0
C Create Meeting With Custom Form Outlook VBA and Custom Forms 2
D Create advanced search (email) via VBA with LONG QUERY (>1024 char) Outlook VBA and Custom Forms 2
G Create ordinal numbers for birthday Outlook VBA and Custom Forms 2
O Outlook 365 - How to create / copy a new contact from an existing one? Using Outlook 5
D Create new email from the received Email Body with attachment Outlook VBA and Custom Forms 10
A How to create fixed signatures for aliases that process through GMAIL? Outlook VBA and Custom Forms 0
P Can I create a Rule that sends me an email when I get a Task? Using Outlook 2
M How create a Rule to filter sender's email with more that one @ sign Using Outlook 1
B Can I create a local PST file for SPAM on a drive that is usually disconnected? Using Outlook 3
Chiba Create an appointment for all the members Outlook VBA and Custom Forms 1
S Create a clickable custom column field Outlook VBA and Custom Forms 0
O Create a custom contact form - questions before messing things up... Outlook VBA and Custom Forms 4
L automaticaly create a teams meeting with a sync Using Outlook 0
D Can Exchange Admin Center create a pst for users email/contacts/calendar? Exchange Server Administration 0
S Create A Search Folder That Looks For Message Class? Outlook VBA and Custom Forms 0
F How to create phone number as links in notes of Contacts Using Outlook 2
Nessa Can't create new appointment Using Outlook 1
A Create date folder and move messages daily Outlook VBA and Custom Forms 1
C Create new Message with shared contacts & BCC'ing recipients Outlook VBA and Custom Forms 0
O Multiple email accounts - hesitate to create a new profile Using Outlook 3
G Can't create Folder Groups in Outlook 2013 Using Outlook 0
N Outlook rules don't create a copy for bcc'ed emails Using Outlook 3
F Delete/create/reset Exchange mailbox on Outlook.com Using Outlook.com accounts in Outlook 3
R Can not create folder to store specific emails in in Outlook for Mac Using Outlook 1
W Create Search Folder excluding Specific Email Addresses Using Outlook 5
A Outlook macro to create search folder with mail categories as criteria Outlook VBA and Custom Forms 3
K VBA BeforeItemMove event create rule to always move to its folder. Outlook VBA and Custom Forms 4
JackBlack What tools do you use to create the signature for email? Using Outlook 3
Rupert Dragwater How to create a new email with @outlook.com Using Outlook.com accounts in Outlook 32
F Should a new email account also create new contacts Using Outlook 2
D create an html table in outlook custom form 2010 using vba in MsAccess Outlook VBA and Custom Forms 7
R Outlook add-in to create new contact from an email. Using Outlook 0
Tanja Östrand Outlook 2016 - Create Macro button to add text in Subject Outlook VBA and Custom Forms 1
Q Script to create a pst file for Archiving Using Outlook 1
Jennifer Murphy Can I create a Rule with Or'd conditions? Using Outlook 1
D Outlook macros to create meeting on shared calendar Outlook VBA and Custom Forms 10

Similar threads

Back
Top