bool MailSender::sendHeader() { std::string msg; msg = "MAIL FROM: "; msg += getSenderAddress() + "\r\n"; if(!sendRequest(send_mail_cmd, msg)) return false; if(!rcvResponse("250")) return false; _mail->traverseReceiver(); while ( _mail->hasMoreReceiver() ) { msg = "RCPT TO: "; msg += _mail->nextReceiverAddress() + "\r\n"; if(!sendRequest(send_rcpt_cmd, msg)) return false; if(!rcvResponse("250")) return false; } msg = "DATA\r\n"; if(!sendRequest(send_data_cmd, msg)) return false; if(!rcvResponse("354")) return false; return sendRequest(send_header, _mail->getHeader()); }
void MailSender::quit() { sendRequest(send_quit_cmd, "QUIT\r\n"); rcvResponse("221"); closesocket(_socket); }
void MailSender::login() { std::string msg; msg = "AUTH LOGIN\r\n"; sendRequest(send_auth_cmd, msg); rcvResponse("334"); msg = MUtils::Base64Helper::encode(_user_name) + "\r\n"; sendRequest(send_username, msg); rcvResponse("334"); msg = MUtils::Base64Helper::encode(_user_pwd) + "\r\n"; sendRequest(send_password, msg); rcvResponse("235"); }
bool MailSender::quit() { if(!sendRequest(send_quit_cmd, "QUIT\r\n")) return false; if(!rcvResponse("221")) return false; closesocket(_socket); return true; }
bool MailSender::login() { std::string msg; msg = "AUTH LOGIN\r\n"; if(!sendRequest(send_auth_cmd, msg)) return false; if(!rcvResponse("334")) return false; msg = MUtils::Base64Helper::encode(_user_name) + "\r\n"; if(!sendRequest(send_username, msg)) return false; if(!rcvResponse("334")) return false; msg = MUtils::Base64Helper::encode(_user_pwd) + "\r\n"; if(!sendRequest(send_password, msg)) return false; return rcvResponse("235"); }
void MailSender::hello() { char local_host[MAX_BUFFER_SIZE]; if ( gethostname(local_host, MAX_BUFFER_SIZE) != 0 ) { throw MailException("Get local host name error"); } std::string msg; msg = "HELO "; msg += std::string(local_host) + "\r\n"; sendRequest(send_helo_cmd, msg); rcvResponse("250"); }
void MailSender::sendHeader() { MailString msg; msg = _T("MAIL FROM: "); msg += _mail->getSenderAddress() + _T("\r\n"); sendRequest(send_mail_cmd, msg); rcvResponse(_T("250")); _mail->traverseReceiver(); while ( _mail->hasMoreReceiver() ) { msg = _T("RCPT TO: "); msg += _mail->nextReceiverAddress() + _T("\r\n"); sendRequest(send_rcpt_cmd, msg); rcvResponse(_T("250")); } msg = _T("DATA\r\n"); sendRequest(send_data_cmd, msg); rcvResponse(_T("354")); sendRequest(send_header, _mail->getHeader()); }
void MailSender::conn() { struct hostent* host = gethostbyname(_server_name.c_str()); if (host == 0) { throw MailException("Get server infomation error"); } _socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); struct sockaddr_in server_addr; server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = *(ULONG *)host->h_addr_list[0]; server_addr.sin_port = htons(SERVICE_PORT); connect(_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)); rcvResponse("220"); }
bool MailSender::hello() { char local_host[MAX_BUFFER_SIZE]; if ( gethostname(local_host, MAX_BUFFER_SIZE) != 0 ) { // throw new MailException("Get local host name error"); _err_message = "Get local host name error"; return false; } std::string msg; msg = "HELO "; msg += std::string(local_host) + "\r\n"; if(!sendRequest(send_helo_cmd, msg)) return false; return rcvResponse("250"); }
void MailSender::hello() { char local_host[MAX_BUFFER_SIZE]; if ( gethostname(local_host, MAX_BUFFER_SIZE) != 0 ) { throw MailException(_T("Get local host name error")); } int nDstLen = 0; TCHAR *plocal = M_A2T(local_host, MAX_BUFFER_SIZE, nDstLen); MailString msg; msg = _T("HELO "); msg += MailString(plocal) + _T("\r\n"); sendRequest(send_helo_cmd, msg); rcvResponse(_T("250")); delete[] plocal; }
void MailSender::sendEnd() { sendRequest(send_end, _mail->getEnd()); rcvResponse("250"); }
bool MailSender::sendEnd() { if(!sendRequest(send_end, _mail->getEnd())) return false; return rcvResponse("250"); }