Go Premium for a chance to win a PS4. Enter to Win


cc in an email using smtp control

Posted on 2004-10-08
Medium Priority
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: email@example.com to the header section of the DATA part of a mail, where email@example.com 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:<email@example.com> and email@example.com 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: email@example.com 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 1500 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 email@example.com, you would connect to mail.example.com (or whatever mx address is returned by the DNS for example.com)) and you would send a mail to them like normal, but after the DATA command, instead of putting To: email@example.com, you would put CC: email@example.com.  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 jody@hotmail.com and a CC to user@example.com.  Your email program would first do an MX DNS lookup on hotmail.com and then on example.com.  Get the mail server IP addresses for those two domains.  It then connects to hotmail.com.  Does a HELO, MAIL FROM, RCPT TO:<jody@hotmail.com> (this tells the server who you're sending to), then DATA, then your email body including headers which include To: jody@hotmail.com and CC: user@example.com.  After that it does the same thing with the MX address returned for example.com.  Except when sending the RCPT TO: line it puts user@example.com instead of jody@hotmail.com.

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 www.rfc-editor.org.  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: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

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

In this post we will learn different types of Android Layout and some basics of an Android App.
We live in a world of interfaces like the one in the title picture. VBA also allows to use interfaces which offers a lot of possibilities. This article describes how to use interfaces in VBA and how to work around their bugs.
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
Six Sigma Control Plans

916 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