blob: 04f8651a751fad29992f14868987454251fd7f68 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2//
3// mail.c
4//
5// $Id: mail.c 6081 2006-10-23 14:12:34Z Zesstra $
6
7/*
8 * VERSION 1.0
9 * udp module for the UDP MAIL system (Author: Alvin@Sushi)
10 * Requires INETD V0.60 or higher (INETD Author: Nostradamus@Zebedee)
11 */
12
13#include <udp.h>
14#include <udp_mail.h>
15
16/*
17#define DEBUG(msg) if (find_player("hate")) tell_object(find_player("hate"),msg)
18*/
19#undef DEBUG
20#define DEBUG(x)
21
22void udp_mail(mapping data)
23{
24 DEBUG(sprintf("UDPMAIL %O\n",data));
25 if(!member(data,RECIPIENT) || !data[RECIPIENT])
26 {
27 log_file("INETD","Invalid udp_mail packet. No Recipient.\n");
28 return;
29 }
30
31 if(!LOCAL_MAILER->query_recipient_ok(data[RECIPIENT]))
32 {
33 INETD->_send_udp(data[NAME], ([
34 REQUEST: REPLY,
35 RECIPIENT: data[SENDER],
36 UDPM_STATUS: UDPM_STATUS_UNKNOWN_PLAYER,
37 UDPM_WRITER: data[UDPM_WRITER],
38 UDPM_SPOOL_NAME: data[UDPM_SPOOL_NAME],
39 ID: data[ID],
40 DATA: "Reason: Unknown player \""+capitalize(data[RECIPIENT])+
41 "\"\n\nINCLUDED MESSAGE FOLLOWS :-\n\n"+
42 "Subject: "+data[UDPM_SUBJECT]+"\n"+data[DATA]
43 ]) );
44
45 return;
46 }
47
48 LOCAL_MAILER->deliver_mail(
49 data[RECIPIENT], /* To */
50 data[UDPM_WRITER]+"@"+data[NAME], /* From */
51 data[UDPM_SUBJECT], /* Subj */
52 data[DATA] /* Mail Body */
53 );
54
55 INETD->_send_udp(data[NAME], ([
56 REQUEST: REPLY,
57 RECIPIENT: data[SENDER],
58 UDPM_STATUS: UDPM_STATUS_DELIVERED_OK,
59 UDPM_WRITER: data[UDPM_WRITER],
60 UDPM_SPOOL_NAME: data[UDPM_SPOOL_NAME],
61 ID: data[ID],
62 DATA: data[RECIPIENT]
63 ]) );
64}