A Microsoft Outlook email forum. Outlook Banter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » Outlook Banter forum » Microsoft Outlook Email Newsgroups » Outlook and VBA
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

Help with some issues in Outlook Plugin development



 
 
Thread Tools Search this Thread Display Modes
  #1  
Old June 6th 09, 04:49 PM posted to microsoft.public.outlook.program_vba
anindasen_0609[_2_]
external usenet poster
 
Posts: 15
Default Help with some issues in Outlook Plugin development

Thanks a lot for your reply.

1. There are some emails which are stored in the address book with a name.
When emails are received from those clients, the object is returning the name
as fromemail instead of the email id. I tried iterating through recipients
collection but it did not work.

2. This is my code. I am taking the MAPIFolder ItemAdd event to trap the
incoming emails.

Earlier I tried with Application.NewMail but it did not work when multiple
emails were coming in.

Outlook.MAPIFolder oMapiFolder =
this.Application.Session.GetDefaultFolder(Microsof t.Office.Interop.Outlook.OlDefaultFolders.olFolder Inbox);
m_Items = oMapiFolder.Items;
m_Items.ItemAdd += new
Microsoft.Office.Interop.Outlook.ItemsEvents_ItemA ddEventHandler(m_Items_ItemAdd);

what is the difference between Application.NewMailEx and Application.NewMail ?

Regards.

"Sue Mosher [MVP]" wrote:

1) If by "email IDs," you mean the email addresses, iterate the Recipients
collection and get each Recipient.Address property value.

2) What event are you using for "trapping the incoming emails"?
Application.NewMailEx is your best choice.

--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


"anindasen_0609" wrote in message
...
I have developed a outlook plugin project and everything is working ok for
me
except for two issues. It would be very helpful for me if anyone could
throw
some light on them. They are

1. Cannot retrieve some of the email IDs in the To, CC and BCC fields
from the
Item as Outlook.MailItem object. Instead of the email IDs I am getting
the name of the recipient. Eg. "Tom Cruise" instead of

2. The plugin is not trapping the incoming emails when rules are set for
them to
land directly into some other folder based on their email ID. subject or
other criteria.

Thanking you in advance.

Regards,
Aninda




  #2  
Old June 6th 09, 07:20 PM posted to microsoft.public.outlook.program_vba
Sue Mosher [MVP][_3_]
external usenet poster
 
Posts: 465
Default Help with some issues in Outlook Plugin development

1) I'm confused now. Your original post talked about To, Cc, and Bcc
recipients, but now you seem to be referring to the sender. Which is it? In
what version of Outlook? What specifically didn't work? Show the relevant
code snippet.

2) NewMail tells you only that one or more new messages have arrived.
NewMailEx gives you the EntryID information needed to retrieve them. You can
read about the Application.NewMailEx event in the Outlook developer
reference and see a VBA code example at
http://www.outlookcode.com/codedetail.aspx?id=1410
--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


"anindasen_0609" wrote in message
news
Thanks a lot for your reply.

1. There are some emails which are stored in the address book with a name.
When emails are received from those clients, the object is returning the
name
as fromemail instead of the email id. I tried iterating through recipients
collection but it did not work.

2. This is my code. I am taking the MAPIFolder ItemAdd event to trap the
incoming emails.

Earlier I tried with Application.NewMail but it did not work when multiple
emails were coming in.

Outlook.MAPIFolder oMapiFolder =
this.Application.Session.GetDefaultFolder(Microsof t.Office.Interop.Outlook.OlDefaultFolders.olFolder Inbox);
m_Items = oMapiFolder.Items;
m_Items.ItemAdd += new
Microsoft.Office.Interop.Outlook.ItemsEvents_ItemA ddEventHandler(m_Items_ItemAdd);

what is the difference between Application.NewMailEx and
Application.NewMail ?

Regards.

"Sue Mosher [MVP]" wrote:

1) If by "email IDs," you mean the email addresses, iterate the
Recipients
collection and get each Recipient.Address property value.

2) What event are you using for "trapping the incoming emails"?
Application.NewMailEx is your best choice.

"anindasen_0609" wrote in
message
...
I have developed a outlook plugin project and everything is working ok
for
me
except for two issues. It would be very helpful for me if anyone could
throw
some light on them. They are

1. Cannot retrieve some of the email IDs in the To, CC and BCC
fields
from the
Item as Outlook.MailItem object. Instead of the email IDs I am getting
the name of the recipient. Eg. "Tom Cruise" instead of


2. The plugin is not trapping the incoming emails when rules are set
for
them to
land directly into some other folder based on their email ID. subject
or
other criteria.

Thanking you in advance.

Regards,
Aninda






  #3  
Old June 10th 09, 10:58 AM posted to microsoft.public.outlook.program_vba
anindasen_0609[_2_]
external usenet poster
 
Posts: 15
Default Help with some issues in Outlook Plugin development

Thanks for your reply. I am sorry I could not reply earlier.

1) I think I created a confusion. I actually meant all the email fields
ie., From, To, Cc and Bcc. Wherever there is a name for a particular email
address
in the local address book, I am getting the name instead of the email ID.

My function to get email ID against the name is as below:

private string GetEmailID(ref string recipientName)
{
string recipientEmailID = null;
string myQuery = null;
myQuery = "[FullName] = '" + recipientName + "'";

// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Get the NameSpace information.
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
// Get the default Contacts folder.
Outlook.MAPIFolder oContacts =
oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFo lderContacts);
// Get the Items collection from the folder.
Outlook.Items oItems = (Outlook.Items)oContacts.Items;
// Get the first contact item in the Items collection.
Outlook.ContactItem oCt =
(Outlook.ContactItem)oItems.Find(myQuery);

if (oCt != null)
{
if (oCt.Email1Address.IndexOf("@") != -1)
recipientEmailID = oCt.Email1Address;
else
recipientEmailID = recipientName;
}
else
{
recipientEmailID = recipientName;
}

oCt = null;
oItems = null;
oContacts = null;
oNS = null;
oApp = null;

return recipientEmailID;
}


and I am calling it only when


if (emailAddress.IndexOf("@") = 0)
{
emailAddress = GetEmailID(ref emailAddress);
}


2) I will definitely look at the resources that you have kindly shared and try
NewMailEx.

3) There is one more problem which I am solving in a rather inelegant way.
I am getting the sender's Email ID from Outlook in a form like:

/O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd

if the email ID is - .

We are using Active Directory Service and all that I am doing right now is
taking
out the email name and the domain by string manipulation and getting the
email ID from
the database against that. But I am looking for a more proper solution to
this problem.

Thanks.
Aninda






"Sue Mosher [MVP]" wrote:

1) I'm confused now. Your original post talked about To, Cc, and Bcc
recipients, but now you seem to be referring to the sender. Which is it? In
what version of Outlook? What specifically didn't work? Show the relevant
code snippet.

2) NewMail tells you only that one or more new messages have arrived.
NewMailEx gives you the EntryID information needed to retrieve them. You can
read about the Application.NewMailEx event in the Outlook developer
reference and see a VBA code example at
http://www.outlookcode.com/codedetail.aspx?id=1410
--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


"anindasen_0609" wrote in message
news
Thanks a lot for your reply.

1. There are some emails which are stored in the address book with a name.
When emails are received from those clients, the object is returning the
name
as fromemail instead of the email id. I tried iterating through recipients
collection but it did not work.

2. This is my code. I am taking the MAPIFolder ItemAdd event to trap the
incoming emails.

Earlier I tried with Application.NewMail but it did not work when multiple
emails were coming in.

Outlook.MAPIFolder oMapiFolder =
this.Application.Session.GetDefaultFolder(Microsof t.Office.Interop.Outlook.OlDefaultFolders.olFolder Inbox);
m_Items = oMapiFolder.Items;
m_Items.ItemAdd += new
Microsoft.Office.Interop.Outlook.ItemsEvents_ItemA ddEventHandler(m_Items_ItemAdd);

what is the difference between Application.NewMailEx and
Application.NewMail ?

Regards.

"Sue Mosher [MVP]" wrote:

1) If by "email IDs," you mean the email addresses, iterate the
Recipients
collection and get each Recipient.Address property value.

2) What event are you using for "trapping the incoming emails"?
Application.NewMailEx is your best choice.

"anindasen_0609" wrote in
message
...
I have developed a outlook plugin project and everything is working ok
for
me
except for two issues. It would be very helpful for me if anyone could
throw
some light on them. They are

1. Cannot retrieve some of the email IDs in the To, CC and BCC
fields
from the
Item as Outlook.MailItem object. Instead of the email IDs I am getting
the name of the recipient. Eg. "Tom Cruise" instead of


2. The plugin is not trapping the incoming emails when rules are set
for
them to
land directly into some other folder based on their email ID. subject
or
other criteria.

Thanking you in advance.

Regards,
Aninda







  #4  
Old June 10th 09, 02:27 PM posted to microsoft.public.outlook.program_vba
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default Help with some issues in Outlook Plugin development

Sue's on vacation.

I see a few flaws in your code.

First of all, in an Outlook COM addin, never create a new
Outlook.Application object. Always use the Application object passed to you
in your startup code handler or in OnConnection.

Second, that code will only look at contacts. If a recipient is from the GAL
then you never will find anything.

As Sue recommended it's really best to work with the Recipients collection
and iterate that. You said that didn't work but didn't provide any
information as to why. Each Recipient object has an Address property .
That's what you should be using.

When the Recipient is part of an Exchange domain you won't get back an SMTP
style address, you'll get back an Exchange DN type address such as your
example: /O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd.

In those cases you would need to convert the EX address into an SMTP
equivalent. Since you never mention which version or versions of Outlook you
are targeting it's hard to be specific as to how you would convert the
address. Take a look at
http://www.outlookcode.com/threads.a...essageid=13469 for some
suggestions as to how to do that. Note that since you're using managed code
(C#) the CDO option is not available to you, CDO is not supported and should
not be used with managed code.

You can also search at www.outlookcode.com using something like "convert
exchange address to smtp" to look at other forum threads on that topic.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"anindasen_0609" wrote in message
...
Thanks for your reply. I am sorry I could not reply earlier.

1) I think I created a confusion. I actually meant all the email fields
ie., From, To, Cc and Bcc. Wherever there is a name for a particular email
address
in the local address book, I am getting the name instead of the email ID.

My function to get email ID against the name is as below:

private string GetEmailID(ref string recipientName)
{
string recipientEmailID = null;
string myQuery = null;
myQuery = "[FullName] = '" + recipientName + "'";

// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Get the NameSpace information.
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
// Get the default Contacts folder.
Outlook.MAPIFolder oContacts =
oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFo lderContacts);
// Get the Items collection from the folder.
Outlook.Items oItems = (Outlook.Items)oContacts.Items;
// Get the first contact item in the Items collection.
Outlook.ContactItem oCt =
(Outlook.ContactItem)oItems.Find(myQuery);

if (oCt != null)
{
if (oCt.Email1Address.IndexOf("@") != -1)
recipientEmailID = oCt.Email1Address;
else
recipientEmailID = recipientName;
}
else
{
recipientEmailID = recipientName;
}

oCt = null;
oItems = null;
oContacts = null;
oNS = null;
oApp = null;

return recipientEmailID;
}


and I am calling it only when


if (emailAddress.IndexOf("@") = 0)
{
emailAddress = GetEmailID(ref emailAddress);
}


2) I will definitely look at the resources that you have kindly shared and
try
NewMailEx.

3) There is one more problem which I am solving in a rather inelegant way.
I am getting the sender's Email ID from Outlook in a form like:

/O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd

if the email ID is - .

We are using Active Directory Service and all that I am doing right now is
taking
out the email name and the domain by string manipulation and getting the
email ID from
the database against that. But I am looking for a more proper solution to
this problem.

Thanks.
Aninda


  #5  
Old June 11th 09, 06:33 AM posted to microsoft.public.outlook.program_vba
anindasen_0609[_2_]
external usenet poster
 
Posts: 15
Default Help with some issues in Outlook Plugin development

Hi Ken,


Thank you very much for your reply with valuable suggestions.

I am very sorry that I missed out on the version of Outlook which sue
asked specifically. Actually I want my code to work in both Outlook 2003
as well as 2007 versions.

Right now it is working only on version Outlook 2007
and not on Outlook 2003 I don't know why. It installs on Outlook 2003
correctly without any installation problem and shows in the plugin section of
outlook 2003 also but never works.


Regards,
Aninda






"Ken Slovak - [MVP - Outlook]" wrote:

Sue's on vacation.

I see a few flaws in your code.

First of all, in an Outlook COM addin, never create a new
Outlook.Application object. Always use the Application object passed to you
in your startup code handler or in OnConnection.

Second, that code will only look at contacts. If a recipient is from the GAL
then you never will find anything.

As Sue recommended it's really best to work with the Recipients collection
and iterate that. You said that didn't work but didn't provide any
information as to why. Each Recipient object has an Address property .
That's what you should be using.

When the Recipient is part of an Exchange domain you won't get back an SMTP
style address, you'll get back an Exchange DN type address such as your
example: /O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd.

In those cases you would need to convert the EX address into an SMTP
equivalent. Since you never mention which version or versions of Outlook you
are targeting it's hard to be specific as to how you would convert the
address. Take a look at
http://www.outlookcode.com/threads.a...essageid=13469 for some
suggestions as to how to do that. Note that since you're using managed code
(C#) the CDO option is not available to you, CDO is not supported and should
not be used with managed code.

You can also search at www.outlookcode.com using something like "convert
exchange address to smtp" to look at other forum threads on that topic.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"anindasen_0609" wrote in message
...
Thanks for your reply. I am sorry I could not reply earlier.

1) I think I created a confusion. I actually meant all the email fields
ie., From, To, Cc and Bcc. Wherever there is a name for a particular email
address
in the local address book, I am getting the name instead of the email ID.

My function to get email ID against the name is as below:

private string GetEmailID(ref string recipientName)
{
string recipientEmailID = null;
string myQuery = null;
myQuery = "[FullName] = '" + recipientName + "'";

// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Get the NameSpace information.
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
// Get the default Contacts folder.
Outlook.MAPIFolder oContacts =
oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFo lderContacts);
// Get the Items collection from the folder.
Outlook.Items oItems = (Outlook.Items)oContacts.Items;
// Get the first contact item in the Items collection.
Outlook.ContactItem oCt =
(Outlook.ContactItem)oItems.Find(myQuery);

if (oCt != null)
{
if (oCt.Email1Address.IndexOf("@") != -1)
recipientEmailID = oCt.Email1Address;
else
recipientEmailID = recipientName;
}
else
{
recipientEmailID = recipientName;
}

oCt = null;
oItems = null;
oContacts = null;
oNS = null;
oApp = null;

return recipientEmailID;
}


and I am calling it only when


if (emailAddress.IndexOf("@") = 0)
{
emailAddress = GetEmailID(ref emailAddress);
}


2) I will definitely look at the resources that you have kindly shared and
try
NewMailEx.

3) There is one more problem which I am solving in a rather inelegant way.
I am getting the sender's Email ID from Outlook in a form like:

/O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd

if the email ID is - .

We are using Active Directory Service and all that I am doing right now is
taking
out the email name and the domain by string manipulation and getting the
email ID from
the database against that. But I am looking for a more proper solution to
this problem.

Thanks.
Aninda



  #6  
Old June 11th 09, 02:53 PM posted to microsoft.public.outlook.program_vba
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default Help with some issues in Outlook Plugin development

Did you compile the code with a reference to the Outlook/Office 2003 PIA's?
If you did it with references to the Outlook/Office 2007 PIA's it would
never work with Outlook 2003. You always have to compile on the oldest
version of Outlook that you intend to support.

If that's not it you're going to have to do some detective work. You should
put strategically placed logging statements or MessageBox calls to show
where you are in the code, or even if your code is actually loading and
running.

If the code isn't running then you need to do some Fusion debugging, Fusion
is the managed code loader. See
http://blogs.msdn.com/vsod/archive/2...-failures.aspx
for information on how to do that.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"anindasen_0609" wrote in message
...
Hi Ken,


Thank you very much for your reply with valuable suggestions.

I am very sorry that I missed out on the version of Outlook which sue
asked specifically. Actually I want my code to work in both Outlook 2003
as well as 2007 versions.

Right now it is working only on version Outlook 2007
and not on Outlook 2003 I don't know why. It installs on Outlook 2003
correctly without any installation problem and shows in the plugin section
of
outlook 2003 also but never works.


Regards,
Aninda


  #7  
Old June 25th 09, 12:07 PM posted to microsoft.public.outlook.program_vba
anindasen_0609[_2_]
external usenet poster
 
Posts: 15
Default Help with some issues in Outlook Plugin development

Thanks Ken and Sue for your help. I now understand propertyaccessor method
and property tags much better because of your help.
I found out a few things which might come to help for people.
In Outlook 2007 - the property tags
which can be accessed with PropertyAccessor method of address entry for
Display Name ("John Doe") = 0x3001001E
EX Address ("/O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=John") =
0x803C001E
SMTP Address ") = 0x39FE001E
AddressType ("EX" or "SMTP") = 0x3002001E

Regards,
Aninda





"Ken Slovak - [MVP - Outlook]" wrote:

Sue's on vacation.

I see a few flaws in your code.

First of all, in an Outlook COM addin, never create a new
Outlook.Application object. Always use the Application object passed to you
in your startup code handler or in OnConnection.

Second, that code will only look at contacts. If a recipient is from the GAL
then you never will find anything.

As Sue recommended it's really best to work with the Recipients collection
and iterate that. You said that didn't work but didn't provide any
information as to why. Each Recipient object has an Address property .
That's what you should be using.

When the Recipient is part of an Exchange domain you won't get back an SMTP
style address, you'll get back an Exchange DN type address such as your
example: /O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd.

In those cases you would need to convert the EX address into an SMTP
equivalent. Since you never mention which version or versions of Outlook you
are targeting it's hard to be specific as to how you would convert the
address. Take a look at
http://www.outlookcode.com/threads.a...essageid=13469 for some
suggestions as to how to do that. Note that since you're using managed code
(C#) the CDO option is not available to you, CDO is not supported and should
not be used with managed code.

You can also search at www.outlookcode.com using something like "convert
exchange address to smtp" to look at other forum threads on that topic.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"anindasen_0609" wrote in message
...
Thanks for your reply. I am sorry I could not reply earlier.

1) I think I created a confusion. I actually meant all the email fields
ie., From, To, Cc and Bcc. Wherever there is a name for a particular email
address
in the local address book, I am getting the name instead of the email ID.

My function to get email ID against the name is as below:

private string GetEmailID(ref string recipientName)
{
string recipientEmailID = null;
string myQuery = null;
myQuery = "[FullName] = '" + recipientName + "'";

// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Get the NameSpace information.
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
// Get the default Contacts folder.
Outlook.MAPIFolder oContacts =
oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFo lderContacts);
// Get the Items collection from the folder.
Outlook.Items oItems = (Outlook.Items)oContacts.Items;
// Get the first contact item in the Items collection.
Outlook.ContactItem oCt =
(Outlook.ContactItem)oItems.Find(myQuery);

if (oCt != null)
{
if (oCt.Email1Address.IndexOf("@") != -1)
recipientEmailID = oCt.Email1Address;
else
recipientEmailID = recipientName;
}
else
{
recipientEmailID = recipientName;
}

oCt = null;
oItems = null;
oContacts = null;
oNS = null;
oApp = null;

return recipientEmailID;
}


and I am calling it only when


if (emailAddress.IndexOf("@") = 0)
{
emailAddress = GetEmailID(ref emailAddress);
}


2) I will definitely look at the resources that you have kindly shared and
try
NewMailEx.

3) There is one more problem which I am solving in a rather inelegant way.
I am getting the sender's Email ID from Outlook in a form like:

/O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd

if the email ID is - .

We are using Active Directory Service and all that I am doing right now is
taking
out the email name and the domain by string manipulation and getting the
email ID from
the database against that. But I am looking for a more proper solution to
this problem.

Thanks.
Aninda



  #8  
Old June 26th 09, 07:42 AM posted to microsoft.public.outlook.program_vba
anindasen_0609[_2_]
external usenet poster
 
Posts: 15
Default Help with some issues in Outlook Plugin development

Hi Ken,

This is about the issue - "Name being returned by the mail object instead of
the Email ID" as I posted earlier.

I iterated through the Global Address List (GAL) as you suggested and
everything is ok as far as getting the email IDs in the GAL is concerned. But
the problem is something else.

There is a particular name that is being returned (Christopher Gillespie)
instead of the email ID which does not exist in any of the address books on
the server side. I think it is kept locally. You must have seen that when you
type an email ID which is not there in outlook, outlook saves it and prompts
it the next time you try to type it. If you double click on it, it pops up a
small form which has the title of "E-mail Properties" and in there you have
the fields "Display Name", "E-mail address", "E-mail type" with a button
called "Custom type" and another field called "Internet format".

I think that is where the display name can be changed and stored. I do not
know where Outlook is storing those email IDs. The guy who is facing the
problem must have changed the email ID of the contact Email ID to a name
("Christopher Gillespie" in this case) and that is what is being returned.

Does it make any sense? I hope it does. Where is outlook saving those
addresses and how can I catch hold of them? Please help.

Regards,
Aninda

"Ken Slovak - [MVP - Outlook]" wrote:

Sue's on vacation.

I see a few flaws in your code.

First of all, in an Outlook COM addin, never create a new
Outlook.Application object. Always use the Application object passed to you
in your startup code handler or in OnConnection.

Second, that code will only look at contacts. If a recipient is from the GAL
then you never will find anything.

As Sue recommended it's really best to work with the Recipients collection
and iterate that. You said that didn't work but didn't provide any
information as to why. Each Recipient object has an Address property .
That's what you should be using.

When the Recipient is part of an Exchange domain you won't get back an SMTP
style address, you'll get back an Exchange DN type address such as your
example: /O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd.

In those cases you would need to convert the EX address into an SMTP
equivalent. Since you never mention which version or versions of Outlook you
are targeting it's hard to be specific as to how you would convert the
address. Take a look at
http://www.outlookcode.com/threads.a...essageid=13469 for some
suggestions as to how to do that. Note that since you're using managed code
(C#) the CDO option is not available to you, CDO is not supported and should
not be used with managed code.

You can also search at www.outlookcode.com using something like "convert
exchange address to smtp" to look at other forum threads on that topic.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"anindasen_0609" wrote in message
...
Thanks for your reply. I am sorry I could not reply earlier.

1) I think I created a confusion. I actually meant all the email fields
ie., From, To, Cc and Bcc. Wherever there is a name for a particular email
address
in the local address book, I am getting the name instead of the email ID.

My function to get email ID against the name is as below:

private string GetEmailID(ref string recipientName)
{
string recipientEmailID = null;
string myQuery = null;
myQuery = "[FullName] = '" + recipientName + "'";

// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Get the NameSpace information.
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
// Get the default Contacts folder.
Outlook.MAPIFolder oContacts =
oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFo lderContacts);
// Get the Items collection from the folder.
Outlook.Items oItems = (Outlook.Items)oContacts.Items;
// Get the first contact item in the Items collection.
Outlook.ContactItem oCt =
(Outlook.ContactItem)oItems.Find(myQuery);

if (oCt != null)
{
if (oCt.Email1Address.IndexOf("@") != -1)
recipientEmailID = oCt.Email1Address;
else
recipientEmailID = recipientName;
}
else
{
recipientEmailID = recipientName;
}

oCt = null;
oItems = null;
oContacts = null;
oNS = null;
oApp = null;

return recipientEmailID;
}


and I am calling it only when


if (emailAddress.IndexOf("@") = 0)
{
emailAddress = GetEmailID(ref emailAddress);
}


2) I will definitely look at the resources that you have kindly shared and
try
NewMailEx.

3) There is one more problem which I am solving in a rather inelegant way.
I am getting the sender's Email ID from Outlook in a form like:

/O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd

if the email ID is - .

We are using Active Directory Service and all that I am doing right now is
taking
out the email name and the domain by string manipulation and getting the
email ID from
the database against that. But I am looking for a more proper solution to
this problem.

Thanks.
Aninda



  #9  
Old June 26th 09, 07:55 AM posted to microsoft.public.outlook.program_vba
anindasen_0609[_2_]
external usenet poster
 
Posts: 15
Default Help with some issues in Outlook Plugin development

In continuation with my last post on "Name being returned instead of email
ID" just like to mention that when someone is sending an email who is not in
my address book it is showing in the format of "Christopher Gillespie
]" and when I am hitting on reply to that email, it
is showing "Christopher Gillespie " in the "To:"
field and if I double click on that email ID it is showing "Christopher
Gillespie" in the display name. I think that is what is being returned when I
am picking up the "To:" address from the sent email object instead of the
email ID.

Regards,
Aninda




"Ken Slovak - [MVP - Outlook]" wrote:

Sue's on vacation.

I see a few flaws in your code.

First of all, in an Outlook COM addin, never create a new
Outlook.Application object. Always use the Application object passed to you
in your startup code handler or in OnConnection.

Second, that code will only look at contacts. If a recipient is from the GAL
then you never will find anything.

As Sue recommended it's really best to work with the Recipients collection
and iterate that. You said that didn't work but didn't provide any
information as to why. Each Recipient object has an Address property .
That's what you should be using.

When the Recipient is part of an Exchange domain you won't get back an SMTP
style address, you'll get back an Exchange DN type address such as your
example: /O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd.

In those cases you would need to convert the EX address into an SMTP
equivalent. Since you never mention which version or versions of Outlook you
are targeting it's hard to be specific as to how you would convert the
address. Take a look at
http://www.outlookcode.com/threads.a...essageid=13469 for some
suggestions as to how to do that. Note that since you're using managed code
(C#) the CDO option is not available to you, CDO is not supported and should
not be used with managed code.

You can also search at www.outlookcode.com using something like "convert
exchange address to smtp" to look at other forum threads on that topic.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"anindasen_0609" wrote in message
...
Thanks for your reply. I am sorry I could not reply earlier.

1) I think I created a confusion. I actually meant all the email fields
ie., From, To, Cc and Bcc. Wherever there is a name for a particular email
address
in the local address book, I am getting the name instead of the email ID.

My function to get email ID against the name is as below:

private string GetEmailID(ref string recipientName)
{
string recipientEmailID = null;
string myQuery = null;
myQuery = "[FullName] = '" + recipientName + "'";

// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Get the NameSpace information.
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
// Get the default Contacts folder.
Outlook.MAPIFolder oContacts =
oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFo lderContacts);
// Get the Items collection from the folder.
Outlook.Items oItems = (Outlook.Items)oContacts.Items;
// Get the first contact item in the Items collection.
Outlook.ContactItem oCt =
(Outlook.ContactItem)oItems.Find(myQuery);

if (oCt != null)
{
if (oCt.Email1Address.IndexOf("@") != -1)
recipientEmailID = oCt.Email1Address;
else
recipientEmailID = recipientName;
}
else
{
recipientEmailID = recipientName;
}

oCt = null;
oItems = null;
oContacts = null;
oNS = null;
oApp = null;

return recipientEmailID;
}


and I am calling it only when


if (emailAddress.IndexOf("@") = 0)
{
emailAddress = GetEmailID(ref emailAddress);
}


2) I will definitely look at the resources that you have kindly shared and
try
NewMailEx.

3) There is one more problem which I am solving in a rather inelegant way.
I am getting the sender's Email ID from Outlook in a form like:

/O=DOMAIN/OU=FIRST ADMINISTRATIVE GROUP/CN=RE/ou=abcd

if the email ID is - .

We are using Active Directory Service and all that I am doing right now is
taking
out the email name and the domain by string manipulation and getting the
email ID from
the database against that. But I am looking for a more proper solution to
this problem.

Thanks.
Aninda



  #10  
Old June 26th 09, 02:11 PM posted to microsoft.public.outlook.program_vba
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default Help with some issues in Outlook Plugin development

The To, Cc and Bcc fields can have actual email addresses in them or
"friendly names" such as "John Foobar" or a combination of both. There's no
way to tell, it's just a text field. You can avoid all those problems if you
use the Recipients collection, as both Sue and I have suggested, and use the
Address field of each Recipient object. You will get only an email address
that way, whether or not it's an EX DN or an SMTP type address.

Using the fields you are insisting on using will get you nowhere fast.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"anindasen_0609" wrote in message
...
In continuation with my last post on "Name being returned instead of email
ID" just like to mention that when someone is sending an email who is not
in
my address book it is showing in the format of "Christopher Gillespie
]" and when I am hitting on reply to that email,
it
is showing "Christopher Gillespie " in the "To:"
field and if I double click on that email ID it is showing "Christopher
Gillespie" in the display name. I think that is what is being returned
when I
am picking up the "To:" address from the sent email object instead of the
email ID.

Regards,
Aninda


 




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
The Outlook Express Development Team/s D. Spencer Hines Outlook Express 23 May 18th 09 09:47 PM
The Outlook Express Development Team/s D. Spencer Hines Outlook Express 0 February 2nd 09 04:49 AM
VS Development environment - Outlook addin gattsi Add-ins for Outlook 1 January 25th 08 03:21 PM
Best Outlook Add-In development companies? Mark B Add-ins for Outlook 5 June 21st 07 12:06 PM
Outlook Web Access Development AaronTJ Outlook - General Queries 1 February 16th 06 02:25 AM


All times are GMT +1. The time now is 12:48 AM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2025 Outlook Banter.
The comments are property of their posters.