Lpc Manpages

CONCEPT:
	mail


DESCRIPTION:
	This document describes the mail system used in AnderLand.
	The idea is to make a central mail handling object which
	accepts and distributes mail between users. Mail is stored in
	the /mail directory. save_object is used to save mail
	information in mail files in this directory. Only the mail
	demon object and the owner of the mail file can access it.

	A number of mail readers will probably available which access
	the mail files. A typical mail user agent has commands to
	read mail contained in the user's mail file, to reply to
	messages, to forward, delete, save them. A folder structure
	can be implemented. Outgoing mail is given to the mail demon
	object by the user agent for distribution. The mailreader
	should implement multiple recipients - carbon copy, cc and
	blind carbon copy, bcc. Carbon copy means alternate recipients
	to which the message should be sent. Blind carbon copy is the
	same, but the recipients won't be listed in the received
	message.

	Save file format (sort of formal notation):

	mixed *folders = ({
	   ({ string name1; string name2; ... string nameN; })
	   ({ mixed *msgs1; mixed *msgs2; ... mixed *msgsN; })
	})

	The array variable <folders> contains a number of folder
	structures containing the actual messages. There are special
	folders which are reserved: mail, newmail. New mail will
	be delivered into the newmail folder. This is the only hard
	coded requirement (the mail demon will simply deposit new
	mail there). The folder name 'mail' should be used for read
	mail. Other folders can be dynamically created by the user
	agent.

	Each msgs field is an array of messages:

	mixed *msgs = ({ mixed *message1; ... mixed *messageM })

	A message is represented as an array with the following fields:

	mixed *message = ({
	   string from;
	   string sender;
	   string recipient;
	   string *cc;
	   string *bcc;
	   string subject;
	   string date;
	   string id;
	   string body;
	})

	The mailer demon (/secure/mailer, or /obj/mailer) provides
	the following functions:

	DeliverMail(mixed *message)
	  Hand a mail message over to the mailer demon. The mailer
	  demon extracts recipients from the recipient, cc and bcc
	  fields and removes the bcc information. It then deposits
	  the message to the mail files of all recipients. A valid
	  message is shown above.

	int FingerMail(string user)
	  Gives the number of unread messages a user has.


SEE ALSO: