cc in an email using smtp control

Posted on 2004-10-08
Last Modified: 2010-04-17
Is there a way to send a message to a someone in the normal way using a smtp control but include the cc header for a particular user without actually cc'ing it to the user.  For example, if someone has already been cc'd and I am just using an smtp control to sending a copy to somebody else, I'd like that new user that I'm sending to.. to still know that a particular user has been cc'd but not re-cc it to them.  If I add the cc header the mail server actually cc's it as it's supposed to of course so I'd like to see if I can add a cc header somehow for looks only.  Thanks.
Question by:jodyglidden
  • 3

Expert Comment

ID: 12261990
In the DATA section of an SMTP mail, you simply add CC: to the header section of the DATA part of a mail, where is the email of the user that was CC'd.  This will show the email of the user you are CCing without actually ever sending anything to them.  If you set a RCPT TO:<> and is the person who is being cc'd, then that is when they will receive a copy of the mail (of course that is if the SMTP server allows relaying, which most don't these days).


Author Comment

ID: 12262042
Sorry, I'm not familiar with the DATA section of the headers.  I've worked quite a bit with headers and with message bodies but I lost you on this part.  Would you mind explaining that part a bit further?  Thanks for your help so far.

Expert Comment

ID: 12262160
Oh, I was assuming that the SMTP control or component you were using allowed pretty raw access to the data it is sending to the SMTP server.  An SMTP server works in the following way.  You log into it and send a HELO (or EHLO command).  The server responds.  You send a MAIL FROM:<email> to the server, another response, RCPT TO:<email>, response, and if all goes well you send a DATA command, then you start sending the body of the email followed by a period (.), which terminates the "body" of the email basically.  But in that body is where the headers sit (ie: Subject, Date, From, CC and some other lines that an email client uses).  Anyway, what I suggest is, if there is some sort of header variable that can be added to, try adding a CC: to it.  If it is actually SENDING to that CC then you have a problem, and it sounds as though the control is trying to do something you don't want it to do.  

Accepted Solution

Tyrsis earned 500 total points
ID: 12262832
Let me expand on the nature of CC's as well here.  If you want to CC someone, in reality what you do is actually connect to their smtp server (in the case of, you would connect to (or whatever mx address is returned by the DNS for and you would send a mail to them like normal, but after the DATA command, instead of putting To:, you would put CC:  So basically there is no real difference between sending something TO someone and CC to someone.  It just gets displayed different or handled different depending on the email client used.  It is just basically a header that is parsed.  The SMTP server doesn't actually DO anything with this information, except send it to the user, and the user's email program is what displays it differently.  

So in a situation like above, where you have two users.  Let's say you want to send a mail TO and a CC to  Your email program would first do an MX DNS lookup on and then on  Get the mail server IP addresses for those two domains.  It then connects to  Does a HELO, MAIL FROM, RCPT TO:<> (this tells the server who you're sending to), then DATA, then your email body including headers which include To: and CC:  After that it does the same thing with the MX address returned for  Except when sending the RCPT TO: line it puts instead of

Anyhow, this is as low level as it gets.  A good reference for how SMTP and POP3 works is to look at the RFC and STD documents.  They are available at  Just do a search for SMTP and POP3 at that URL.  Having an understanding how the low level stuff works will probably help you figure this all out pretty easily.  


Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

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.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show, step by step, how to integrate R code into a R Sweave document
A short article about problems I had with the new location API and permissions in Marshmallow
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question