Dacons LLP Mailit for C/C++ Version 1.0.8

EmaiSMTPInternal.hpp

00001 
00014 #ifndef __EMAISMTPINT_HPP__
00015 #define __EMAISMTPINT_HPP__
00016 
00017 #include <EmaiSMTP.hpp>
00018 
00024 namespace Emai
00025 {
00030 class SmtpSessionInternal : public Object<EmaiSmtpSession>
00031 {
00032 protected:
00033 
00034     typedef Object<EmaiSmtpSession>     Parent;
00035 
00037                                         SmtpSessionInternal();
00038 
00039 public:
00040                                         
00041                                         SmtpSessionInternal(
00042                                                 SmtpStatusCallback& inStatusCallback,
00043                                                 EmaiUint32 inTimeout,
00044                                                 EmaiOptions inOptions = EmaiNullOptions);
00045                                         SmtpSessionInternal(
00046                                                 EmaiSmtpStatusCallback inStatusCallback,
00047                                                 void* inUserData,
00048                                                 EmaiUint32 inTimeout,
00049                                                 EmaiOptions inOptions = EmaiNullOptions);
00050 
00051                                         SmtpSessionInternal(
00052                                                 const SmtpSession& inCopy);
00053                                         SmtpSessionInternal(
00054                                                 EmaiSmtpSession inSession,
00055                                                 bool inAddRef);
00056 
00057                                         ~SmtpSessionInternal();
00058 
00070     void                                Connect(
00071                                                 EmaiConstUniCharPtr inMailServer,
00072                                                 short inPort = EmaiDefaultSmtpPort,
00073                                                 const EmaiProxyInfo* inProxyInfo = NULL,
00074                                                 void* inUserData = NULL,
00075                                                 EmaiConstCharPtr inHostName = NULL,
00076                                                 EmaiConstCharPtr inIPAddress = NULL,
00077                                                 EmaiOptions inOptions = EmaiNullOptions);
00078 
00086     void                                Disconnect(
00087                                                 EmaiOptions inOptions = EmaiNullOptions);
00088 
00102     void                                Authenticate(
00103                                                 EmaiConstUniCharPtr inAccount,
00104                                                 EmaiConstUniCharPtr inPassword,
00105                                                 EmaiOptions inOptions = EmaiSMTPAuthAutomatic);
00106 
00115     void                                SendMessage(
00116                                                 const Message& inMessage,
00117                                                 StringList& outFailedRecipients,
00118                                                 EmaiOptions inOptions = EmaiNullOptions);
00119 
00120 
00128     void                                Cancel(
00129                                                 EmaiOptions inOptions = EmaiNullOptions);
00130                                                 
00131                                                 
00140     void                                Noop(
00141                                                 EmaiOptions inOptions = EmaiNullOptions);
00142 };
00143 
00144 /*
00145 // SmtpSession class implemetation
00146 */
00147 inline
00148 SmtpSessionInternal::SmtpSessionInternal(
00149         SmtpStatusCallback& inStatusCallback,
00150         EmaiUint32 inTimeout,
00151         EmaiOptions inOptions /*= EmaiNullOptions*/
00152     )
00153 {
00154     CheckErrorCode(EmaiSmtpSessionCreate(&mObject,
00155                     &SmtpStatusCallback::StatusCallback, &inStatusCallback,
00156                     inTimeout, inOptions));
00157 }
00158 
00159 inline
00160 SmtpSessionInternal::SmtpSessionInternal(
00161         EmaiSmtpStatusCallback inStatusCallback,
00162         void* inUserData,
00163         EmaiUint32 inTimeout,
00164         EmaiOptions inOptions /*= EmaiNullOptions*/
00165     )
00166 {
00167     CheckErrorCode(EmaiSmtpSessionCreate(&mObject,
00168                     inStatusCallback, inUserData,
00169                     inTimeout, inOptions));
00170 }
00171 
00172 inline
00173 SmtpSessionInternal::SmtpSessionInternal(
00174         const SmtpSessionInternal& inCopy
00175     ):
00176     Parent(inCopy)
00177 {
00178 }
00179 
00180 inline
00181 SmtpSessionInternal::SmtpSessionInternal(
00182         EmaiSmtpSession inSession,
00183         bool inAddRef
00184     ):
00185     Parent(inSession, inAddRef)
00186 {
00187 }
00188 
00189 inline
00190 SmtpSessionInternal::~SmtpSessionInternal()
00191 {
00192 }
00193 
00194 inline void
00195 SmtpSessionInternal::Connect(
00196         EmaiConstUniCharPtr inMailServer,
00197         short inPort /*= EmaiDefaultSmtpPort*/,
00198         const EmaiProxyInfo* inProxyInfo /*= NULL*/,
00199         void* inUserData,
00200         EmaiConstCharPtr inHostName,
00201         EmaiConstCharPtr inIPAddress,
00202         EmaiOptions inOptions /*= EmaiNullOptions*/
00203     )
00204 {
00205     CheckErrorCode(EmaiSmtpConnectInternal(mObject,
00206                             inMailServer, inPort, 
00207                             inProxyInfo, 
00208                             inUserData,
00209                             inHostName,
00210                             inIPAddress,
00211                             inOptions));
00212 }
00213 
00214 inline void
00215 SmtpSessionInternal::Disconnect(
00216         EmaiOptions inOptions /*= EmaiNullOptions*/
00217     )
00218 {
00219     CheckErrorCode(EmaiSmtpDisconnect(mObject, inOptions));
00220 }
00221 
00222 inline void
00223 SmtpSessionInternal::Authenticate(
00224         EmaiConstUniCharPtr inAccount,
00225         EmaiConstUniCharPtr inPassword,
00226         EmaiOptions inOptions /*= EmaiSMTPAuthAutomatic*/
00227     )
00228 {
00229     CheckErrorCode(EmaiSmtpAuthenticate(mObject, inAccount,
00230                             inPassword, inOptions));
00231 }
00232 
00233 inline void
00234 SmtpSessionInternal::SendMessage(
00235         const Message& inMessage,
00236         StringList& outFailedRecipients,
00237         EmaiOptions inOptions /*= EmaiNullOptions*/
00238     )
00239 {
00240     EmaiStringList stringList = NULL;
00241     CheckErrorCode(EmaiSmtpSendMessage(mObject, inMessage, &stringList, inOptions));
00242     if (stringList != NULL)
00243         outFailedRecipients = StringList(stringList, true);
00244 }
00245 
00246 inline void
00247 SmtpSessionInternal::Cancel(
00248         EmaiOptions inOptions /*= EmaiNullOptions*/
00249     )
00250 {
00251     CheckErrorCode(EmaiSmtpCancel(mObject, inOptions));
00252 }
00253 
00254 inline void
00255 SmtpSessionInternal::Noop(
00256         EmaiOptions inOptions /*= EmaiNullOptions*/
00257     )
00258 {
00259     CheckErrorCode(EmaiSmtpNoop(mObject, inOptions));
00260 }
00261 
00262 
00263 }
00264 
00265 
00266 #endif /*__EMAISMTPINT_HPP__*/