Continued work.

This commit is contained in:
Brad Arant committed 2022-12-07 15:00:04 -08:00
1 parent 30cd31c171
commit c9cdc822a2
21 files changed
+1531 -148

No files matched your search

+14 -23
View File
@@ -2,39 +2,30 @@
# include "SMTPServer.h"
namespace mail {
int __SMTP_RCPT::processCommand(coreutils::ZString &request, SMTPSession &session, SMTPServer &server) {
std::cout << "001" << std::endl;
int __SMTP_RCPT::processCommand(coreutils::ZString &request, SMTPSession &session, SMTPServer &server) {
if((session.state == MAIL) || (session.state == RCPT)) {
std::cout << "002" << std::endl;
if(request[1].ifNext("TO:")) {
std::cout << "003" << std::endl;
if(request[1].ifNext("TO:")) {
request[1].skipWhitespace();
if(request[1].ifNext("<")) {
std::cout << "004" << std::endl;
coreutils::MString recipient(request[1].getTokenExclude(">"));
if(server.mailFileSystem.ifMailBoxExists(recipient)) {
std::cout << "005" << std::endl;
session.recipientList.push_back(recipient);
std::cout << "006" << std::endl;
session.out << "250 OK" << CRLF;
std::cout << "007" << std::endl;
session.state = RCPT;
std::cout << "008" << std::endl;
} else if(session.relay) {
if(server.mailFileSystem.ifMailBoxExists(recipient)) {
session.recipientList.push_back(recipient);
session.out << "250 OK" << CRLF;
session.state = RCPT;
} else
session.out << "550 Mailbox does not exist" << 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:<email-address>" << CRLF;
} else
session.out << "550 Usage: RCPT TO:<email-address>" << CRLF;
} else
session.out << "550 Usage: RCPT TO:<email-address>" << CRLF;
} else
session.out << "503 Please use MAIL first" << CRLF;
std::cout << "009" << std::endl;
return 1;
}
}