Continued work.
This commit is contained in:
1 parent
30cd31c171
commit
c9cdc822a2
21 files changed
+1531
-148
No files matched your search
+12
-10
@@ -16,7 +16,7 @@ namespace mail {
|
||||
|
||||
case RCPT:
|
||||
session.out << "354 Enter the mail message terminated by <CRLF>.<CRLF>" << CRLF;
|
||||
session.mailData.str("");
|
||||
session.mailData = "";
|
||||
session.mode = RECEIVE_DATA;
|
||||
grabInput(session);
|
||||
// session.setTimer(120.0f);
|
||||
@@ -34,16 +34,17 @@ namespace mail {
|
||||
break;
|
||||
|
||||
case RECEIVE_DATA:
|
||||
if(request != ".")
|
||||
if(request != ".") {
|
||||
session.mailData << request << CRLF;
|
||||
}
|
||||
else {
|
||||
session.mode = WAIT_FOR_DATA;
|
||||
session.state = READY;
|
||||
clearGrab(session);
|
||||
// if(filterMessage(session.mailData)) {
|
||||
if(session.recipientList.size() > 0) {
|
||||
if(session.mailData.str().size() > 0) {
|
||||
coreutils::MString ID = queueMail(server, session.sender, session.recipientList, session.mailData);
|
||||
if(session.mailData.getLength() > 0) {
|
||||
coreutils::MString ID = queueMail(server, session.from, session.recipientList, session.mailData);
|
||||
if(ID != "") {
|
||||
coreutils::Log(coreutils::LOG_INFO) << "Queued message " << ID << ".";
|
||||
session.out << "250 OK Queued message " << ID << CRLF;
|
||||
@@ -57,7 +58,7 @@ namespace mail {
|
||||
// } else
|
||||
// data << "550 Message is probably spam" << CRLF;
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@@ -73,15 +74,16 @@ namespace mail {
|
||||
coreutils::MString __SMTP_DATA::queueMail(SMTPServer &server,
|
||||
coreutils::MString &sender,
|
||||
std::vector<coreutils::MString> &recipientList,
|
||||
std::stringstream &mailData) {
|
||||
coreutils::MString &mailData) {
|
||||
coreutils::MString fileName;
|
||||
fileName << server.mailFileSystem.getMailPath() << "/.queue/" << generateMailFileName();
|
||||
fileName << server.mailFileSystem.getMailPath() << "/.queue/" << generateMailFileName();
|
||||
coreutils::File mailFile(fileName, O_CREAT | O_WRONLY, 0660);
|
||||
mailFile.write(mailData.str());
|
||||
mailFile.write(mailData);
|
||||
|
||||
for(coreutils::MString recipient: recipientList) {
|
||||
coreutils::MString newName(fileName.write(recipient));
|
||||
link(fileName.c_str(), newName.c_str());
|
||||
coreutils::MString newName;
|
||||
newName << fileName << "|" << recipient;
|
||||
link(fileName.c_str(), newName.c_str());
|
||||
}
|
||||
|
||||
unlink(fileName.c_str());
|
||||
|
||||
Reference in new issue
Block a user