Click here to Skip to main content
13,446,310 members (34,103 online)
Click here to Skip to main content
Add your own
alternative version


19 bookmarked
Posted 11 Nov 2009

Authenticated SMTP

, 24 Apr 2012
Rate this:
Please Sign up or sign in to vote.
C++ class to authenticate an SMTP server connection


This code is a C++ class derived from the ATL class CSMTPConnection. It adds LOGIN authentication It also allows specifying a custom SMTP port.


The base class is described in detail here.

SMTP negotiating is described here.

Using the Code

Create a Windows project in Visual Studio 2005 and make sure you add ATL support. Create a CAuthSMTPConnection variable and use the Connect method. CMimeMessage is already defined in the ATL libraries and the base class is already set to handle it.

Sample Code

CAuthSMTPConnection SMTP(587,"","username","password");
if (SMTP.Connect())
	// Create the text email message
	CMimeMessage msg;
	msg.AddText("Use CAuthSMTPConnection to authenticate SMTP!");

	// Send the email message
	if (SMTP.SendMessage(msg))
		AfxMessageBox("Sent Mail");
		AfxMessageBox("Mail not sent");
	AfxMessageBox("Can't connect to mail server");


  • 11/10/09 - Article created
  • 11/11/09 - Cleaned up some insecure code
  • 04/24/12 - Added support for VS2008


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Andy Bantly
United States United States
Working as a software developer since 1989. Started out with Basic, FORTRAN and JCL, moved into Visual Basic 1.0, C, then C++, and now I work mainly in C++ using MFC, Win32, and ATL/COM. I use Microsoft Products only because that is what gives me gainful employment. Through work, I have a lot of experience with HTML, JavaScript, XSL transformations, the XMLHTTP object, PHP 4.x, and simple COM object integrations.

I've worked for the University of Oklahoma in the school of meteorology (Go SOONERS!), consulting, and now as a Senior Software Engineer. These things keep my lights on and electricity going. My dream job is to own a bowling alley and rub elbows with pro-bowlers! I'm also an avid pedicab driver and have my own cab. I like the hustle of picking up people in downtown and biking them to their destination.

You may also be interested in...

Comments and Discussions

Suggestionneed call ::CoInitialize( NULL ) first Pin
raidsan16-Apr-15 17:40
memberraidsan16-Apr-15 17:40 
Question"250 AUTH" for authentication. Pin
Billy Yang29-Sep-14 17:32
memberBilly Yang29-Sep-14 17:32 
AnswerRe: "250 AUTH" for authentication. Pin
Andy Bantly30-Sep-14 7:19
memberAndy Bantly30-Sep-14 7:19 
GeneralMy vote of 5 Pin
Michael Haephrati3-Mar-13 5:34
mvpMichael Haephrati3-Mar-13 5:34 
GeneralMy vote of 5 Pin
maplewang24-Apr-12 19:44
membermaplewang24-Apr-12 19:44 
GeneralMy vote of 1 Pin
xComaWhitex24-Apr-12 4:23
memberxComaWhitex24-Apr-12 4:23 
GeneralRe: My vote of 1 Pin
Andy Bantly25-Apr-12 2:24
memberAndy Bantly25-Apr-12 2:24 
GeneralRe: My vote of 1 Pin
xComaWhitex25-Apr-12 8:42
memberxComaWhitex25-Apr-12 8:42 
Question[My vote of 1] Not an article Pin
Richard MacCutchan24-Apr-12 3:14
mvpRichard MacCutchan24-Apr-12 3:14 
AnswerRe: [My vote of 1] Not an article Pin
Andy Bantly24-Apr-12 3:38
memberAndy Bantly24-Apr-12 3:38 
QuestionNow support VS2008 Pin
Andy Bantly24-Apr-12 2:12
memberAndy Bantly24-Apr-12 2:12 
AnswerRe: Now support VS2008 Pin
Canny Brisk24-Aug-13 21:28
professionalCanny Brisk24-Aug-13 21:28 
Questionatlsmtpconnection.h can't get included? Pin
Joan Murt23-Apr-12 21:03
memberJoan Murt23-Apr-12 21:03 
AnswerRe: atlsmtpconnection.h can't get included? Pin
Andy Bantly24-Apr-12 1:48
memberAndy Bantly24-Apr-12 1:48 
GeneralMy vote of 5 Pin
maplewang14-Mar-12 4:02
membermaplewang14-Mar-12 4:02 
GeneralMy vote of 1 Pin
DitecShelby31-May-11 8:04
memberDitecShelby31-May-11 8:04 
GeneralMy Vote is 4 Pin
Ali Sayed12-Nov-09 7:00
memberAli Sayed12-Nov-09 7:00 
GeneralMy vote of 1 Pin
Jim Crafton11-Nov-09 5:49
memberJim Crafton11-Nov-09 5:49 
GeneralRe: My vote of 1 Pin
Andy Bantly11-Nov-09 6:31
memberAndy Bantly11-Nov-09 6:31 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02-2016 | 2.8.180314.2 | Last Updated 24 Apr 2012
Article Copyright 2009 by Andy Bantly
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid