Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1916
  • Last Modified:

SMTP: RCPT TO: always empty, instead DATA TO: ?

Hey guys,

While programming an application using SMTP, I found this very confusing thing.

Every article, manual, document, you name it, covering SMTP tells me that recipients are added using the RCPT TO: <address@domain.tld> command. However, when I manually send an email using telnet, when I look in my mail root directory (eg. inetpub/mailroot/queue), the email I just sent always lists the 'To:' field as empty, for example when I load the email in Outlook.

After much messing around with it and asking a friend of mine, it seems that the only way to get the 'To:' field to contain addresses, is by setting it in the DATA field. For example:

EHLO
MAIL FROM: me@mydomain.net
RCPT TO: you@yourdomain.net
DATA
Test email
.

If I load this email in Outlook (or edit in a texteditor) it clearly shows that the mail is from me@mydomain.net, with no subject, body 'Test email', but no recipient! However if I do this:

EHLO
MAIL FROM: me@mydomain.net
RCPT TO: you@yourdomain.net
DATA
TO: you@yourotherdomain.net
Test email 2
.

it will show the email to come from me@mydomain.net, no subject, body 'Test email 2' but with recipient you@yourotherdomain.net?!

This confuses me, especially since I can't seem to find an article covering this. Also, what is the point of the RCPT TO: field when somehow it won't accept this for me? Oh and I tried this on 2 different SMTP servers, using remote connections or local connections, so I don't think there can be the problem.

I hope someone can explain this to me! Thanks!

Razzie
0
Razzie_
Asked:
Razzie_
  • 4
  • 2
1 Solution
 
PsiCopCommented:
Simply put:

TO: != RCPT TO:

This took me awhile to figger out to.

RCPT TO: is an SMTP command that tells the MTA (Message Transfer Agent) to whom the E-Mail is destined. This is so it can perform lookups, determine if it accepts mail for this Domain and/or user, determine proper routing, etc. etc.

The TO: line in an E-Mail derives from the headers transmitted with the E-Mail itself. That is, your program must *explicitly* transmit a TO: header, during the DATA step, if you want the resultant E-Mail to have a TO: header. RCPT TO: is strictly for the MTA.

This is how things like BCC: are done. The recipients are listed in the RCPT TO: commands during the initial communication with the MTA, but the TO: header is omitted. TO: is mainly for us humans, (and any programs, like ProcMail, that may handle the E-Mail after the MTA has accepted it for delivery).
0
 
PsiCopCommented:
Whoops. That was my site.Config.m4 I gave you a link to above. Here is my annotated sendmail.mc

http://www.experts-exchange.com/Networking/Email_Groupware/Sendmail/Q_21116293.html
0
 
PsiCopCommented:
Fudge. Wrong Question. Ignore my last Comment.
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
Razzie_Author Commented:
Ok thanks PsiCop!
0
 
Razzie_Author Commented:
Btw, it's strange that all articles I read about SMTP do not cover this, I wonder why....
0
 
PsiCopCommented:
I dunno. I'll Ask Mr. Protocol if he can look into it.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now