SMTP_DATA work.

This commit is contained in:
Brad Arant 2022-08-03 16:17:20 -07:00
parent bb1c2cf944
commit 30cd31c171
4 changed files with 26 additions and 14 deletions

BIN
BMAMail

Binary file not shown.

View File

@ -70,7 +70,10 @@ namespace mail {
return coreutils::MString(temp.str()); return coreutils::MString(temp.str());
} }
coreutils::MString __SMTP_DATA::queueMail(SMTPServer &server, coreutils::MString &sender, std::vector<coreutils::MString> &recipientList, std::stringstream &mailData) { coreutils::MString __SMTP_DATA::queueMail(SMTPServer &server,
coreutils::MString &sender,
std::vector<coreutils::MString> &recipientList,
std::stringstream &mailData) {
coreutils::MString fileName; coreutils::MString fileName;
fileName << server.mailFileSystem.getMailPath() << "/.queue/" << generateMailFileName(); fileName << server.mailFileSystem.getMailPath() << "/.queue/" << generateMailFileName();
coreutils::File mailFile(fileName, O_CREAT | O_WRONLY, 0660); coreutils::File mailFile(fileName, O_CREAT | O_WRONLY, 0660);

View File

@ -11,9 +11,9 @@
#include "IMAPServer.h" #include "IMAPServer.h"
int main(int argc, char **argv) { int main(int argc, char **argv) {
try { try {
coreutils::Log(new coreutils::File("/var/log/mail.log", O_WRONLY | O_APPEND | O_CREAT, 0644)); coreutils::Log(new coreutils::File("/var/log/mail.log", O_WRONLY | O_APPEND | O_CREAT, 0644));
coreutils::Log(coreutils::LOG_INFO) << "BMAMail Server starting. Build " << __DATE__ << " " << __TIME__; coreutils::Log(coreutils::LOG_INFO) << "BMAMail Server starting. Build " << __DATE__ << " " << __TIME__;
@ -22,24 +22,24 @@ int main(int argc, char **argv) {
coreutils::ZString mailPath("/var/mail"); coreutils::ZString mailPath("/var/mail");
mail::MailFileSystem mailFileSystem(mailPath); mail::MailFileSystem mailFileSystem(mailPath);
core::EPoll ePoll; core::EPoll ePoll;
mail::SMTPServer smtpServer(ePoll, hostName, mailFileSystem, core::IPAddress(ipAddress, 25)); mail::SMTPServer smtpServer(ePoll, hostName, mailFileSystem, core::IPAddress(ipAddress, 9025));
mail::POP3Server pop3Server(ePoll, hostName, mailFileSystem, core::IPAddress(ipAddress, 110)); // mail::POP3Server pop3Server(ePoll, hostName, mailFileSystem, core::IPAddress(ipAddress, 110));
mail::IMAPServer imapServer(ePoll, hostName, mailFileSystem, core::IPAddress(ipAddress, 143)); // mail::IMAPServer imapServer(ePoll, hostName, mailFileSystem, core::IPAddress(ipAddress, 143));
core::ConsoleServer consoleServer(ePoll, core::IPAddress(ipAddress, 1027)); core::ConsoleServer consoleServer(ePoll, core::IPAddress(ipAddress, 1027));
consoleServer.commands.add(consoleServer.commands, "help"); consoleServer.commands.add(consoleServer.commands, "help");
ePoll.start(2, 1000); ePoll.start(2, 1000);
while(true) while(true)
sleep(300); sleep(300);
ePoll.stop(); ePoll.stop();
} }
catch(coreutils::Exception exception) { catch(coreutils::Exception exception) {
std::cout << exception.text << " Error reason is '" << strerror(exception.errorNumber) << "' in file " << exception.file << " at line " << exception.line << std::endl; std::cout << exception.text << " Error reason is '" << strerror(exception.errorNumber) << "' in file " << exception.file << " at line " << exception.line << std::endl;
} }
} }

View File

@ -1,8 +1,17 @@
#!/bin/bash #!/bin/bash
nc localhost 25 > /dev/null << EOL nc localhost 9025 > /dev/null << EOL
EHLO barant.com EHLO barant.com
MAIL FROM: <brad.arant@barant.com> MAIL FROM: <brad.arant@barant.com>
RCPT TO: <barant@barant.com> RCPT TO: <barant@barant.com>
DATA
From: barant@barant.com
To: barant@barant.com
Subject: test email system
This is a test
.
QUIT QUIT
EOL EOL