Compilable SMTP
This commit is contained in:
1 parent
6c844983d9
commit
e1f33291f7
70 files changed
+308
-362
No files matched your search
+8
-8
@@ -3,30 +3,30 @@
|
||||
|
||||
namespace mail {
|
||||
|
||||
int __SMTP_RCPT::processCommand(coreutils::PString request, SMTPSession &session, SMTPServer &server, std::stringstream &data) {
|
||||
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(">");
|
||||
recipient = request.getTokenExclude(">").str();
|
||||
if(server.mailFileSystem.ifMailBoxExists(recipient)) {
|
||||
session.recipientList.push_back(recipient);
|
||||
data << "250 OK" << CRLF;
|
||||
session.out << "250 OK" << CRLF;
|
||||
session.state = RCPT;
|
||||
} else if(session.relay) {
|
||||
session.recipientList.push_back(recipient);
|
||||
data << "250 OK" << CRLF;
|
||||
session.out << "250 OK" << CRLF;
|
||||
session.state = RCPT;
|
||||
} else
|
||||
data << "550 Mailbox does not exist" << CRLF;
|
||||
session.out << "550 Mailbox does not exist" << CRLF;
|
||||
} else
|
||||
data << "550 Usage: RCPT TO:<email-address>" << CRLF;
|
||||
session.out << "550 Usage: RCPT TO:<email-address>" << CRLF;
|
||||
} else
|
||||
data << "550 Usage: RCPT TO:<email-address>" << CRLF;
|
||||
session.out << "550 Usage: RCPT TO:<email-address>" << CRLF;
|
||||
} else
|
||||
data << "503 Please use MAIL first" << CRLF;
|
||||
session.out << "503 Please use MAIL first" << CRLF;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user