blob: 04f8651a751fad29992f14868987454251fd7f68 [file] [log] [blame]
// MorgenGrauen MUDlib
//
// mail.c
//
// $Id: mail.c 6081 2006-10-23 14:12:34Z Zesstra $
/*
* VERSION 1.0
* udp module for the UDP MAIL system (Author: Alvin@Sushi)
* Requires INETD V0.60 or higher (INETD Author: Nostradamus@Zebedee)
*/
#include <udp.h>
#include <udp_mail.h>
/*
#define DEBUG(msg) if (find_player("hate")) tell_object(find_player("hate"),msg)
*/
#undef DEBUG
#define DEBUG(x)
void udp_mail(mapping data)
{
DEBUG(sprintf("UDPMAIL %O\n",data));
if(!member(data,RECIPIENT) || !data[RECIPIENT])
{
log_file("INETD","Invalid udp_mail packet. No Recipient.\n");
return;
}
if(!LOCAL_MAILER->query_recipient_ok(data[RECIPIENT]))
{
INETD->_send_udp(data[NAME], ([
REQUEST: REPLY,
RECIPIENT: data[SENDER],
UDPM_STATUS: UDPM_STATUS_UNKNOWN_PLAYER,
UDPM_WRITER: data[UDPM_WRITER],
UDPM_SPOOL_NAME: data[UDPM_SPOOL_NAME],
ID: data[ID],
DATA: "Reason: Unknown player \""+capitalize(data[RECIPIENT])+
"\"\n\nINCLUDED MESSAGE FOLLOWS :-\n\n"+
"Subject: "+data[UDPM_SUBJECT]+"\n"+data[DATA]
]) );
return;
}
LOCAL_MAILER->deliver_mail(
data[RECIPIENT], /* To */
data[UDPM_WRITER]+"@"+data[NAME], /* From */
data[UDPM_SUBJECT], /* Subj */
data[DATA] /* Mail Body */
);
INETD->_send_udp(data[NAME], ([
REQUEST: REPLY,
RECIPIENT: data[SENDER],
UDPM_STATUS: UDPM_STATUS_DELIVERED_OK,
UDPM_WRITER: data[UDPM_WRITER],
UDPM_SPOOL_NAME: data[UDPM_SPOOL_NAME],
ID: data[ID],
DATA: data[RECIPIENT]
]) );
}