Introduction
This code is a C++ class derived from the ATL class CSMTPConnection. It adds LOGIN authentication It also allows specifying a custom SMTP port.
Background
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,"smtp.server.com","username","password");
if (SMTP.Connect())
{
CMimeMessage msg;
msg.SetSubject(csTFTDHdr);
msg.SetSender("me@somewhere.com");
msg.SetSenderName("Me");
msg.AddRecipient("you@somewhere.com");
msg.AddRecipient("them@somewhere.com");
msg.AddText("Use CAuthSMTPConnection to authenticate SMTP!");
if (SMTP.SendMessage(msg))
AfxMessageBox("Sent Mail");
else
AfxMessageBox("Mail not sent");
}
else
{
AfxMessageBox("Can't connect to mail server");
}
History
- 11/10/09 - Article created
- 11/11/09 - Cleaned up some insecure code
- 04/24/12 - Added support for VS2008
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.