![]() |
Help with some issues in Outlook Plugin development
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 |
Help with some issues in Outlook Plugin development
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 |
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 |
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 ... 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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Help with some issues in Outlook Plugin development
Thanks Ken. Problem solved.
Regards, Aninda "Ken Slovak - [MVP - Outlook]" wrote: 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 |
All times are GMT +1. The time now is 08:04 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