BMAMail  1.0.0
E-Mail System
/home/bradarant/barant/BMAMail/__SMTP_RCPT.h
Go to the documentation of this file.
1 #ifndef ____SMTP_RCPT_h__
2 # define ____SMTP_RCPT_h__
3 
4 # include "Command.h"
5 # include "MailFileSystem.h"
6 # include "SMTPService.h"
7 
8 namespace mail {
9 
10  class __SMTP_RCPT : public SMTPCommand {
11 
12  int processCommand(coreutils::PString request, SMTPSession &session, std::stringstream &data) {
13 
14  if((session.state == MAIL) || (session.state == RCPT)) {
15 
16  std::string recipient = request[1].str();
17 
18  if(session.service.mailFileSystem.isMailbox(recipient)) {
19  session.recipientList.push_back(recipient);
20  data << "250 OK" << CRLF;
21  session.state = RCPT;
22 
23  } else if(session.relay) {
24  session.recipientList.push_back(recipient);
25  data << "250 OK" << CRLF;
26  session.state = RCPT;
27 
28  } else
29  data << "553 Mailbox does not exist" << CRLF;
30 
31  }
32 
33  else
34  data << "503 Please use MAIL first" << CRLF;
35 
36  return 0;
37  }
38 
39  };
40 
41 }
42 
43 #endif
State state
Definition: SMTPSession.h:25
Definition: SMTPSession.h:11
bool relay
Definition: SMTPSession.h:28
std::vector< std::string > recipientList
Definition: SMTPSession.h:30
Definition: __IMAP_APPEND.h:7
Definition: SMTPCommand.h:9
#define CRLF
Definition: SMTPSession.h:7
Definition: SMTPSession.h:15
Definition: __SMTP_RCPT.h:10
Definition: SMTPSession.h:11