Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have an error message getting returned to me from a website which would appear to be something wrong with the Server side. However, this server works for all other sites on the box. Is there a possibility that I (Developer) am doing something wrong? I have no idea where to to start to track this down on the server and my sysadmin says everything appears normal:

The following recipient(s) cannot be reached:
  Customer Service Account on 6/3/2009 11:00 AM
         There was a SMTP communication problem with the
recipient's email server.  Please
contact your system administrator.
<fgdc.myservername.net #5.5.0 smtp;550 Requested action not taken: mailbox unavailable>

Server is 2003, 64-bit and running Exchange 2003

Site is Asp.Net C#, using URL Routing

Where would I start to troubleshoot this?


UPDATE

As it turns out, my system administrator traced the problem down to a layer of Spam protection. Turns out MIMESweeper may be throwing the message away, as it sees the message from our web server farm trying to send an email out with an internal address. We tested external addresses (gmail, hotmail, etc) and it worked Fine.

Thanks for all the answers. As it turns out, the best answer was "Talk to your System Admin" from my perspective... but I thought I'd update the question for anyone out there with something similar.

share|improve this question
add comment

4 Answers

up vote 5 down vote accepted

That's the server saying that whoever you specified as the "RCPT TO:" is not valid.

I'd recommend that you use something like Wireshark to capture the SMTP conversation between your code and the server and verify that you're sending what you expect to be, for starts. It's always nice to see what's happening on the wire and see if it jibes with what your code says should be happening.

If you are specifying the correct recipient, contact the server administrator and have them check it out.

share|improve this answer
    
Thanks for the WireShark Suggestion. I mentioned it to my server admin and he said they use it for tricky problems. Something I will definitely look into. –  Armstrongest Jun 3 '09 at 20:23
    
I can only heartily recommend becoming familiar with tools like WireShark, as a developer, if you're writing any code that talks over a network. If you're not already familiar with running SMTP "by hand" in TELNET, you should learn how to do that, too. Internet protocols are, for the most part, very human-readable and human-writable, and it makes good sense to take advantage of that. I can't tell you, as a sysadmin, how many problems I've diagnosed by reaching for the sniffer first, rather than last. –  Evan Anderson Jun 3 '09 at 20:29
    
Turns out the correct part of the answer was "contact the server administrator" as it turns out it's likely the MIMESweeper layer that is only denying internal addresses. External addresses are flagged as okay, but MIMESweeper sees the internal domain which is coming from teh web server and thinks it's SPAM. –  Armstrongest Jun 3 '09 at 21:08
    
the MIMESweeper layer that is only denying internal addresses told you it was probably a firewall. –  RobM Jun 4 '09 at 8:08
add comment

Sure, this could be the developer's fault. For instance, the spec says that the RCPT should look like this:

RCPT TO:<user@example.com>

However, it's very common practice to actually send this:

RCPT TO: user@example.com

Most fully-featured, mature MTAs accept the latter even though it's not strictly correct. Some apps (like mail firewalls, CRM mail-catchers, etc) will be strict about it and return an error.

I'm not saying that's the cause in this case, but it's an example of how your code could work with most servers, but still be your fault if it breaks on a small percentage of servers.

I second Evan's recommendation to sniff the traffic and understand what's actually being sent.

share|improve this answer
    
Thanks. It's being sent as "First LastName <hello@domain.com>". The .Net MailMessage abstracts all that away. I have the administrator working on it. He says it's only happening when an internal address is used... it's as if it's trying to authenticate that address before sending it out. –  Armstrongest Jun 3 '09 at 20:14
add comment

Can you send email to the email address concerned using conventional weapons, so to speak? If so, it's probably your code. If not, it's their server (or possibly a firewall that tries to smarthost for their server).

share|improve this answer
    
Well, the email getting there. The Email Server is sending the response back. We have full control of the server and it's working for other domains on the box. –  Armstrongest Jun 3 '09 at 20:15
    
Oh yeah Atomiton, I can see the email is getting there, the 550 response is the server rejecting the address you've given it. What I was wondering is - you know what email address you're sending to - can you send to that address via an email client (possibly even telnet) from the box you're sending from. That'll tell you straight away if its your code or something else. microforge.net/kb/146 seems to be a fair guide. This is something I do quite a lot to troubleshoot email issues of one sort or another. –  RobM Jun 3 '09 at 20:57
add comment

In case you were wondering this is the serverfault site. If your sysadmin said its the code- it's the code. Errors are always the developers fault. If you want to blame the sysadmin I hear there is a site called stackoverflow that might be more sympathetic :)

In all seriousness, yes it's the code. According to the error the recipent is invalid. Somehow the webserver is trying to send mail to an account called "Customer Service Account" all email addresses are in the format of user@domainname.suffix. THe fact that you got a 550 error shows that you connected properly to the destination mailserver but there is no user called "Customer Service Account"

Technically 550 means unable to relay, but I am guessing that you are trying to send to an internal mailbox. Even if you are trying to relay, this recipient is not formatted properly.

share|improve this answer
    
Yes, actually we are relaying the message. The Web Server is on a server called fgwww and the mail server is on fgdc which is the domain controller. We also have a couple of clustered Database Servers. What doesn't make sense is that in my code, NOWHERE do I have the words "Customer Service Account" I ONLY specify the email address custservice@domain.com. So, obviously, it's getting the Account name from somewhere. –  Armstrongest Jun 3 '09 at 20:22
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.