# include "__SMTP_RCPT.h" # include "SMTPServer.h" namespace mail { int __SMTP_RCPT::processCommand(coreutils::ZString &request, SMTPSession &session, SMTPServer &server) { if((session.state == MAIL) || (session.state == RCPT)) { std::string recipient; if(request.ifNext("RCPT TO:")) { request.skipWhitespace(); if(request.ifNext("<")) { recipient = request.getTokenExclude(">").str(); if(server.mailFileSystem.ifMailBoxExists(recipient)) { session.recipientList.push_back(recipient); session.out << "250 OK" << CRLF; session.state = RCPT; } else if(session.relay) { session.recipientList.push_back(recipient); session.out << "250 OK" << CRLF; session.state = RCPT; } else session.out << "550 Mailbox does not exist" << CRLF; } else session.out << "550 Usage: RCPT TO:" << CRLF; } else session.out << "550 Usage: RCPT TO:" << CRLF; } else session.out << "503 Please use MAIL first" << CRLF; return 1; } }