/* Do not remove the headers from this file! see /USAGE for more info. */ /* SMTP daemon * This daemon will send mail to a specified address using the local SMTP * agent. * * 971107 Written by Tigran */ /* * INCLUDES */ #include <socket.h> /* * INHERIT */ inherit M_ACCESS; /* * FUNCTIONS */ /* Shoudn't need to read anything */ private nomask void mail_socket_read(){} private nomask void mail_socket_close(object socket){} /* This may need a bit more work in the header. Still reading the rfc on * this one -- tigran */ nomask void send_mail(string destination,string subject,string message) { string reply_to; string foo; object socket; if(!check_privilege("Mudlib:daemons")) return; reply_to=unguarded(1, (: call_other, USER_D, "query_variable", this_user()->query_userid(), ({"email"}) :) )[0]; socket=new(SOCKET, SKT_STYLE_CONNECT, "127.0.0.1 25", (: mail_socket_read :), (: mail_socket_close :) ); catch { socket->send("HELO "__HOST__"\n"); socket->send("MAIL FROM: <"MUD_NAME" LPMUD>\n"); socket->send("RCPT TO: " + destination + "\n"); socket->send("DATA\n"); socket->send("From: \"" + MUD_NAME + "\" <" + ADMIN_EMAIL + ">\n"); socket->send("To: <" + destination + ">\n"); if(reply_to!=""||!reply_to) socket->send(sprintf("Reply-To: <%s> (%s@%s)\n", reply_to, capitalize(this_user()->query_userid()), MUD_NAME) ); socket->send("Subject: " + subject + "\n\n"); socket->send(message + "\n"); socket->send(".\n"); socket->send("QUIT\n"); // destruct(socket); }; } private nomask void create() { set_privilege(1); }