based on reworked servercore.
This commit is contained in:
1 parent
50eb707f10
commit
db3e82a18e
1698 files changed
+41157
-797
No files matched your search
@@ -0,0 +1,58 @@
|
||||
#include "MailDelivery.h"
|
||||
#include "Directory.h"
|
||||
#include "time.h"
|
||||
|
||||
namespace mail {
|
||||
|
||||
MailDelivery::MailDelivery(core::EPoll &ePoll, std::string mailQueue) : INotify(ePoll) {
|
||||
addWatch(mailQueue);
|
||||
startDelivery(mailQueue);
|
||||
}
|
||||
|
||||
void MailDelivery::onDataReceived(std::string data) {
|
||||
|
||||
// TODO: Receive file and parse email name.
|
||||
|
||||
// TODO: Compare time to named time and if time has passed then send the message
|
||||
// TODO: If email is a local mailbox then make a hard link to the mail message in the appropriate Inbox. Remove entry from queue.
|
||||
// TODO: If email is a remote mailbox then perform remote send algorithm.
|
||||
// TODO: If error sending on remote then calculate next send attempt time and rename file to reflect new time.
|
||||
// TODO: If date is on the future then set a timer to that time and wait.
|
||||
|
||||
}
|
||||
|
||||
int MailDelivery::startDelivery(std::string mailQueue) {
|
||||
coreutils::Directory mailDir(mailQueue);
|
||||
std::string entryName = mailDir.get().getName();
|
||||
std::string now = getMailFileName();
|
||||
// if(now > entryName) {
|
||||
// std::string recipientName = coreutils::File(); // read recipient name
|
||||
// if(isLocal(recipientName)) {
|
||||
// link(existing, new);
|
||||
// } else {
|
||||
// open connect socket to mx.domain
|
||||
// if error
|
||||
// calculate future date name and rename mail data
|
||||
// else
|
||||
// write smtp data on socket 25
|
||||
//
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
int MailDelivery::deliver() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
std::string MailDelivery::getMailFileName() {
|
||||
char fileName[64];
|
||||
time_t gtime;
|
||||
time(>ime);
|
||||
struct tm *timex;
|
||||
timex = gmtime(>ime);
|
||||
strftime(fileName, 64, "%Y%m%d%H%M%S", gmtime(>ime));
|
||||
return std::string(fileName);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user