|
#include "stdafx.h"
#include "resource.h"
#include "Smtp.hpp"
#include "Common.hpp"
#pragma managed
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SMTP
namespace vmimeNET {
// A managed wrapper for unmanaged Smtp class
// s_Server = hostname of SMTP server
// u16_Port = 0 to use the default port, otherwise the user defined port
// e_Security = The encryption mode
// If the server sends a certificate that is not signed with a root certificate:
// b_AllowInvalidCerts = true -> only write an ERROR to the Trace output.
// b_AllowInvalidCerts = false -> throw an exception and do not send the email.
Smtp::Smtp(String* s_Server, UInt16 u16_Port, eSecurity e_Security, bool b_AllowInvalidCerts)
{
try
{
mpi_Smtp = new cSmtp(StrW(s_Server), u16_Port, (cCommon::eSecurity)e_Security, b_AllowInvalidCerts, IDR_ROOT_CA);
}
catch (std::exception& Ex)
{
throw new Exception(UNI(Ex.what()).c_str());
}
}
Smtp::~Smtp()
{
Dispose();
}
void Smtp::Dispose()
{
try
{
if (mpi_Smtp) delete mpi_Smtp;
mpi_Smtp = NULL;
}
catch (...)
{
}
}
void Smtp::SetAuthData(String* s_User, String* s_Password)
{
try
{
mpi_Smtp->SetAuthData(StrW(s_User), StrW(s_Password));
}
catch (std::exception& Ex)
{
throw new Exception(UNI(Ex.what()).c_str());
}
}
void Smtp::Send(EmailBuilder* i_Email)
{
try
{
mpi_Smtp->Send((cEmailBuilder*)(void*)i_Email->Internal);
}
catch (std::exception& Ex)
{
throw new Exception(UNI(Ex.what()).c_str());
}
}
} // namespace vmimeNET
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SMTP
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Chris Maunder is the co-founder of
CodeProject and
ContentLab.com, and has been a prominent figure in the software development community for nearly 30 years. Hailing from Australia, Chris has a background in Mathematics, Astrophysics, Environmental Engineering and Defence Research. His programming endeavours span everything from FORTRAN on Super Computers, C++/MFC on Windows, through to to high-load .NET web applications and Python AI applications on everything from macOS to a Raspberry Pi. Chris is a full-stack developer who is as comfortable with SQL as he is with CSS.
In the late 1990s, he and his business partner David Cunningham recognized the need for a platform that would facilitate knowledge-sharing among developers, leading to the establishment of CodeProject.com in 1999. Chris's expertise in programming and his passion for fostering a collaborative environment have played a pivotal role in the success of CodeProject.com. Over the years, the website has grown into a vibrant community where programmers worldwide can connect, exchange ideas, and find solutions to coding challenges. Chris is a prolific contributor to the developer community through his articles and tutorials, and his latest passion project,
CodeProject.AI.
In addition to his work with CodeProject.com, Chris co-founded ContentLab and DeveloperMedia, two projects focussed on helping companies make their Software Projects a success. Chris's roles included Product Development, Content Creation, Client Satisfaction and Systems Automation.