Here is an example of silly program that does nothing except outputing
informations to stdout.
int cb_mailfrom(string mail)
{
return 250;
}
int cb_rcptto(string email)
{
// check the user's mailbox here
return 250;
}
int cb_data(object mime, string sender, array(string) recipients)
{
write(sprintf("smtpd: mailfrom=%s, to=%s, headers=%O\ndata=%s\n",
sender, recipients * ", ", mime->headers, mime->getdata()));
// check the data and deliver the mail here
if(mime->body_parts)
{
foreach(mime->body_parts, object mpart)
write("smtpd: mpart data = %O\n", mpart->getdata());
}
return 250;
}
int main(int argc, array(string) argv)
{
Protocols.SMTP.Server(({ "ece.fr" }), 2500, "127.0.0.1", cb_mailfrom, cb_rcptto, cb_data);
return -1;
}