#include #include "EPoll.h" #include "ConsoleServer.h" #include "Exception.h" #include "File.h" #include "Log.h" #include "IPAddress.h" #include "MailFileSystem.h" #include "SMTPServer.h" #include "POP3Server.h" #include "IMAPServer.h" int main(int argc, char **argv) { try { 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__; std::string hostName = "localhost"; std::string ipAddress = "0.0.0.0"; coreutils::ZString mailPath("/var/mail"); mail::MailFileSystem mailFileSystem(mailPath); core::EPoll ePoll; mail::SMTPServer smtpServer(ePoll, hostName, mailFileSystem, core::IPAddress(ipAddress, 25)); mail::POP3Server pop3Server(ePoll, hostName, mailFileSystem, core::IPAddress(ipAddress, 110)); mail::IMAPServer imapServer(ePoll, hostName, mailFileSystem, core::IPAddress(ipAddress, 143)); core::ConsoleServer consoleServer(ePoll, core::IPAddress(ipAddress, 1027)); consoleServer.commands.add(consoleServer.commands, "help"); ePoll.start(2, 1000); while(true) sleep(300); ePoll.stop(); } catch(coreutils::Exception exception) { std::cout << exception.text << " Error reason is '" << strerror(exception.errorNumber) << "' in file " << exception.file << " at line " << exception.line << std::endl; } }