Group:  Microsoft Outlook ยป microsoft.public.outlook.program_addins
Thread: Exception thrown on MailItem.Send

Geek News

Exception thrown on MailItem.Send
bstrum 6/1/2007 3:42:01 PM
I am getting an exception thrown with our c# outlook addon installed on one
machine running Office 2003. The exception is thrown when I try to call Send
on a mail item that I have programatically created. The code looks like this:

Note: This code uses late binding.

// -- in the Item_Send event --
MSOutlook.MailItem mi; // assume initialized from the Item_Send argument

// create the new mail item that will be programatically sent
object otmp = mi.Application.CreateItem(MSOutlook.OlItemType.olMailItem);
MSOutlook.MailItem m = (MSOutlook.MailItem)MO.COMWrapper.Wrap(
otmp,
typeof(MSOutlook.MailItem));
m.BodyFormat = MSOutlook.OlBodyFormat.olFormatHTML;
m.To = mi.To;
m.Subject = "Some subject";
m.Body = "Test Body";
m.Save();
m.Send(); // throws exception on one client computer

The actual exception thrown is
"Exception has been thrown by the target of an invocation."

I have tried everything I can to duplicate the exception in our test
environment to no avail. Any ideas why something as simple as this would
throw an exception?

Thank you,

Ben Strum
ThinkTron Corporation
Re: Exception thrown on MailItem.Send
"Sue Mosher [MVP-Outlook]" <suemvp[ at ]outlookcode.com> 6/1/2007 4:06:55 PM
Try calling Recipients.ResolveAll and perform the send only if it returns True.

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003
http://www.turtleflock.com/olconfig/index.htm
and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/article.aspx?id=54

"bstrum" <bstrum[ at ]discussions.microsoft.com> wrote in message news:078B8121-29D3-497C-A7FA-B635B2E6F6BB[ at ]microsoft.com...
[Quoted Text]
>I am getting an exception thrown with our c# outlook addon installed on one
> machine running Office 2003. The exception is thrown when I try to call Send
> on a mail item that I have programatically created. The code looks like this:
>
> Note: This code uses late binding.
>
> // -- in the Item_Send event --
> MSOutlook.MailItem mi; // assume initialized from the Item_Send argument
>
> // create the new mail item that will be programatically sent
> object otmp = mi.Application.CreateItem(MSOutlook.OlItemType.olMailItem);
> MSOutlook.MailItem m = (MSOutlook.MailItem)MO.COMWrapper.Wrap(
> otmp,
> typeof(MSOutlook.MailItem));
> m.BodyFormat = MSOutlook.OlBodyFormat.olFormatHTML;
> m.To = mi.To;
> m.Subject = "Some subject";
> m.Body = "Test Body";
> m.Save();
> m.Send(); // throws exception on one client computer
>
> The actual exception thrown is
> "Exception has been thrown by the target of an invocation."
>
> I have tried everything I can to duplicate the exception in our test
> environment to no avail. Any ideas why something as simple as this would
> throw an exception?
>
> Thank you,
>
> Ben Strum
> ThinkTron Corporation
Re: Exception thrown on MailItem.Send
bstrum 6/5/2007 1:49:03 PM
The ResolveAll call is returning false on this one machine so the email does
not go out. Why would this happen? How can I get around this? I am sure
that the email address specified is valid and even if it is not, so what?

Lastly, is there a way to duplicate this in a test environment? Getting a
fix for this is really slow because it only happens on this one machine at a
client site.

Thank you,

-Ben

"Sue Mosher [MVP-Outlook]" wrote:

[Quoted Text]
> Try calling Recipients.ResolveAll and perform the send only if it returns True.
>
> --
> Sue Mosher, Outlook MVP
> Author of Configuring Microsoft Outlook 2003
> http://www.turtleflock.com/olconfig/index.htm
> and Microsoft Outlook Programming - Jumpstart for
> Administrators, Power Users, and Developers
> http://www.outlookcode.com/article.aspx?id=54
>
> "bstrum" <bstrum[ at ]discussions.microsoft.com> wrote in message news:078B8121-29D3-497C-A7FA-B635B2E6F6BB[ at ]microsoft.com...
> >I am getting an exception thrown with our c# outlook addon installed on one
> > machine running Office 2003. The exception is thrown when I try to call Send
> > on a mail item that I have programatically created. The code looks like this:
> >
> > Note: This code uses late binding.
> >
> > // -- in the Item_Send event --
> > MSOutlook.MailItem mi; // assume initialized from the Item_Send argument
> >
> > // create the new mail item that will be programatically sent
> > object otmp = mi.Application.CreateItem(MSOutlook.OlItemType.olMailItem);
> > MSOutlook.MailItem m = (MSOutlook.MailItem)MO.COMWrapper.Wrap(
> > otmp,
> > typeof(MSOutlook.MailItem));
> > m.BodyFormat = MSOutlook.OlBodyFormat.olFormatHTML;
> > m.To = mi.To;
> > m.Subject = "Some subject";
> > m.Body = "Test Body";
> > m.Save();
> > m.Send(); // throws exception on one client computer
> >
> > The actual exception thrown is
> > "Exception has been thrown by the target of an invocation."
> >
> > I have tried everything I can to duplicate the exception in our test
> > environment to no avail. Any ideas why something as simple as this would
> > throw an exception?
> >
> > Thank you,
> >
> > Ben Strum
> > ThinkTron Corporation
>
Re: Exception thrown on MailItem.Send
"Sue Mosher [MVP-Outlook]" <suemvp[ at ]outlookcode.com> 6/5/2007 2:54:03 PM
This is not an appropriate way to copy recipients:

m.To = mi.To;

There is no guarantee that the display names, which is what To shows, will resolve to valid addresses. Instead, you need to iterate the mi.Recipients collection and use m.Recipients.Add to create a new Recipient based on the information from the original item.

To test, use one or more recipients whose display names are radically different from their actual email addresses.
--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003
http://www.turtleflock.com/olconfig/index.htm
and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/article.aspx?id=54

"bstrum" <bstrum[ at ]discussions.microsoft.com> wrote in message news:5134F1F0-AF4D-48F9-AF2C-4929C408A518[ at ]microsoft.com...
[Quoted Text]
> The ResolveAll call is returning false on this one machine so the email does
> not go out. Why would this happen? How can I get around this? I am sure
> that the email address specified is valid and even if it is not, so what?

> Lastly, is there a way to duplicate this in a test environment? Getting a
> fix for this is really slow because it only happens on this one machine at a
> client site.
>
> Thank you,
>
> -Ben
>
> "Sue Mosher [MVP-Outlook]" wrote:
>
>> Try calling Recipients.ResolveAll and perform the send only if it returns True.

>>
>> "bstrum" <bstrum[ at ]discussions.microsoft.com> wrote in message news:078B8121-29D3-497C-A7FA-B635B2E6F6BB[ at ]microsoft.com...
>> >I am getting an exception thrown with our c# outlook addon installed on one
>> > machine running Office 2003. The exception is thrown when I try to call Send
>> > on a mail item that I have programatically created. The code looks like this:
>> >
>> > Note: This code uses late binding.
>> >
>> > // -- in the Item_Send event --
>> > MSOutlook.MailItem mi; // assume initialized from the Item_Send argument
>> >
>> > // create the new mail item that will be programatically sent
>> > object otmp = mi.Application.CreateItem(MSOutlook.OlItemType.olMailItem);
>> > MSOutlook.MailItem m = (MSOutlook.MailItem)MO.COMWrapper.Wrap(
>> > otmp,
>> > typeof(MSOutlook.MailItem));
>> > m.BodyFormat = MSOutlook.OlBodyFormat.olFormatHTML;
>> > m.To = mi.To;
>> > m.Subject = "Some subject";
>> > m.Body = "Test Body";
>> > m.Save();
>> > m.Send(); // throws exception on one client computer
>> >
>> > The actual exception thrown is
>> > "Exception has been thrown by the target of an invocation."
>> >
>> > I have tried everything I can to duplicate the exception in our test
>> > environment to no avail. Any ideas why something as simple as this would
>> > throw an exception?
>> >
>> > Thank you,
>> >
>> > Ben Strum
>> > ThinkTron Corporation
>>

Home | Search | Terms | Imprint Contact
Newsgroups Reader - provided by WiredBox.Net