none
[E2007][PS] Multiple contact records cannot have the same SMTP address? Exchange server throws error. RRS feed

  • Question

  • Exchange v 08.00.0685.018

    I'm using a Powershell script to import contacts from our CRM (SQL Server based) to Active Directory.  They populate fine, can be retrieved via an address list through both Outlook client (2007 and 2010), and OWA.  Most allow messages to be sent normally.  However, some contacts share an SMTP address (e.g. a person who is both an employee of some organization and an officer for some professional society, and uses the same email address for both).  Both contact records are needed for lookup.  In such a case, when email is sent to the individual (using either contact record), Exchange responds with an undeliverable:

    Delivery has failed to these recipients or distribution lists:

     

    user@whatever.domain
    There is a problem with the recipient's e-mail system. More than one user has this e-mail address. The recipient's system administrator will have to fix this. Microsoft Exchange will not try to redeliver this message for you. Please provide the following diagnostic text to your system administrator and then try resending the message after the problem has been resolved.

    ...

    #550 5.1.4 RESOLVER.ADR.Ambiguous; ambiguous address ##

     

    This message appears, at first glance, to be originating with the mailserver from the recipient domain, but in fact it's coming from our own Exchange server.  Apparently, the server expects all SMTP addresses to be unique, and when it finds another record with the same destination address, it considers this an error.

     

    I can understand why duplicate addresses would pose a problem for INTERNAL recipients, within our mailserver domain.  Exchange wouldn't be able to determine the mailbox in which to deposit the message.  However, if the domain of the SMTP address is an EXTERNAL one, shouldn't it just forward the message, and leave it for the mailserver of the receiving domain to decide if the message is undeliverable?

     

    The only potential solution I've found for this problem is to create contact records for each unique external address (a 'relay' record), then create each contact as a user record in AD, and set the forward to the appropriate relay contact.  This adds a LOT of overhead, since only USER records can be forwarded, therefore the contacts have to be created as users (with passwords, mailboxes, and a lot of other associated baggage).  If forced down this road, I think I can set it up, but it's a lot of extra work for something that seems like a poor design choice for the Exchange implementation.

     

    Thanks.

     

    Frank Ress

    Gas Technology Insititute

     

    Tuesday, July 26, 2011 10:36 PM

All replies

  • Hi FRess,

    this is not really a development question. Please post your question in one of the admin forums.

    Kind regards,
    Henning

    Wednesday, July 27, 2011 4:17 AM
  • How did you create the contacts ? if you had used the Exchange Management Shell it shouldn't have allowed you to do this because its underlying invalid hence the errors your receiving (eg if you try to do this via the EMC you would get also get an error). Basically every address in an objects proxyaddress collection (no matter if its a accepted domain or external) needs to be unique because this collection get used for a variety of different purposes if you want to read more about address resolution you could have a look at http://technet.microsoft.com/en-us/library/bb430743.aspx contacts can be external but they also get used for instance in cross-forest Exchange environments so the uniqueness is required and by design. 

    The work around your mentioned is really the only way your going to be able to have two mail enabled Active Directory contacts forwarding to the same external email address.

    Cheers
    Glen

    Wednesday, July 27, 2011 5:00 AM
  • Henning,

    I'm sorry, I'm working on an ETL script using Powershell to move external contact data (primarily our customer contacts) between SQL Server and AD/Exchange.  How is this an administrative issue, rather than a development question?

    Certainly, I'm raising issues regarding the Exchange architecture that are influencing this project, but those issues directly impact the development of the solution I'm trying to implement.  I would expect other developers might have had to address these issues in parts of their apps, and might offer suggestions on ways they were able to work around the challenges these issues represent.

    The only solution I've found so far that looks like it might work is, as I said, overly complex and cumbersome to implement.  I'm hoping I can find something better.  I wouldn't expect administrators would be as likely as other developers to have insights into a way to accomplish this task.

    Frank

    Thursday, July 28, 2011 3:29 PM
  • Glen,

    Thanks for the reply.

    I realized, as a result of your question, that I had omitted too much detail from my post.  I encountered the error I mentioned before I realized it was necessary to mail-enable the contacts.  Attempts to send messages to contacts with duplicate addresses, prior to mail-enabling, resulted in this error.

    You're correct that, when I use the Exchange shell command to mail-enable the contacts, only the first succeeds, and subsequent contacts with a duplicate address will fail.

    I read through the reference you mentioned.  I understand the process a little better, but I think my comments on the, IMO unnecessary, limitations this places on contact records still hold.  But this is probably a digression into territory best characterized as a possible enhancement (if not a design flaw).

    Our users have a legitimate need for a way to expose multiple contact records in Outlook that share email addresses.  I'd really like to find a solution that doesn't involve creating accounts and mailboxes for people who will never login to our systems or receive any email within our organization.  If I could set a forward on a contact record, for example, I could still create the contact records themselves as contacts, rather than users, but I don't believe that's possible.  I'm hoping someone has found a more elegant work around...

    Thanks.

    Frank

    Thursday, July 28, 2011 3:52 PM
  • Hi FRess,

    do you really need to create the contacts as Active Directory Contacts? What about a public folder which stores those contacts? Exchange contacts do not suffer from the limitation discussed here.

    Kind regards,
    Henning

    "FRess" wrote in message news:194f102d-0e41-4181-a00b-7216aae4d48b@communitybridge.codeplex.com...

    Glen,

    Thanks for the reply.

    I realized, as a result of your question, that I had omitted too much detail from my post.  I encountered the error I mentioned before I realized it was necessary to mail-enable the contacts.  Attempts to send messages to contacts with duplicate addresses, prior to mail-enabling, resulted in this error.

    You're correct that, when I use the Exchange shell command to mail-enable the contacts, only the first succeeds, and subsequent contacts with a duplicate address will fail.

    I read through the reference you mentioned.  I understand the process a little better, but I think my comments on the, IMO unnecessary, limitations this places on contact records still hold.  But this is probably a digression into territory best characterized as a possible enhancement (if not a design flaw).

    Our users have a legitimate need for a way to expose multiple contact records in Outlook that share email addresses.  I'd really like to find a solution that doesn't involve creating accounts and mailboxes for people who will never login to our systems or receive any email within our organization.  If I could set a forward on a contact record, for example, I could still create the contact records themselves as contacts, rather than users, but I don't believe that's possible.  I'm hoping someone has found a more elegant work around...

    Thanks.

    Frank

    Thursday, July 28, 2011 4:52 PM
  • Henning,

    I was thinking of something along the same lines, using a Sharepoint list for the contacts.  Thanks.  I'm going to continue to investigate,  If you have any further suggestions or references along these lines, I'd appreciate the help.

    Thanks.

    Frank


    P.S.  (After another hour or so of research.)  Unfortunately, handheld support is the Achilles heel of shared folders or Sharepoint lists for something like this.  Those are exposed via Outlook, not Exchange.  Therefore, they're not available to handheld devices through ActiveSync or a BES server, which talk to the Exchange server, not Outlook.  So we really need the info in AD/Exchange, not some other repository.
    Thursday, July 28, 2011 5:33 PM