This commit is contained in:
Brad Arant committed 2022-06-29 13:34:49 -07:00
1 parent 37b5a5bf4e
commit 6c844983d9
27 files changed
+230 -272

No files matched your search

+18 -15
View File
@@ -1,29 +1,32 @@
#include "__SMTP_MAIL.h"
#include "SMTPServer.h"
#include "SMTPSession.h"
#define CRLF "\r\n"
namespace mail {
int __SMTP_MAIL::processCommand(coreutils::PString request, SMTPSession &session, SMTPServer &server, std::stringstream &data) {
int __SMTP_MAIL::processCommand(coreutils::ZString &request, core::TCPSession &session) {
SMTPSession &s = dynamic_cast<SMTPSession &>(session);
if(request.ifNext("MAIL FROM:")) {
request.skipWhitespace();
if(request.ifNext("<")) {
session.sender = request.getTokenExclude(">");
if(session.authState = USER_KNOWN) {
data << "250 OK" << CRLF;
session.recipientList.clear();
session.state = MAIL;
}
} else
data << "550 Usage: MAIL FROM:<email-address>" << CRLF;
request.skipWhitespace();
if(request.ifNext("<")) {
s.sender = request.getTokenExclude(">");
if(s.authState = USER_KNOWN) {
s.out << "250 OK" << CRLF;
s.recipientList.clear();
s.state = MAIL;
}
} else
s.out << "550 Usage: MAIL FROM:<email-address>" << CRLF;
} else
data << "550 Usage: MAIL FROM:<email-address>" << CRLF;
s.out << "550 Usage: MAIL FROM:<email-address>" << CRLF;
return 1;
}
std::string domainOnly(std::string email) {
coreutils::PString split(email);
coreutils::ZString split(email);
split.split("@");
return split[1].str();
}