long SYM_SMTP;
long SYM_SMTP_RECP;
+
+
+/*****************************************************************************/
+/* SMTP SERVER (INBOUND) STUFF */
+/*****************************************************************************/
+
+
/*
* Here's where our SMTP session begins its happy day.
*/
lprintf(9, "Trying <%s>\n", password);
if (CtdlTryPassword(password) == pass_ok) {
cprintf("235 Authentication successful.\r\n");
- lprintf(9, "SMTP auth login successful\n");
+ lprintf(9, "SMTP authenticated login successful\n");
CC->internal_pgm = 0;
CC->cs_flags &= ~CS_STEALTH;
}
strlen(SMTP_RECP) + 1024 );
strcat(SMTP_RECP, "room|");
strcat(SMTP_RECP, user);
- strcat(SMTP_RECP, "|0\n");
+ strcat(SMTP_RECP, "|0|\n");
return;
case rfc822_no_such_user:
strlen(SMTP_RECP) + 1024 );
strcat(SMTP_RECP, "remote|");
strcat(SMTP_RECP, recp);
- strcat(SMTP_RECP, "|0\n");
+ strcat(SMTP_RECP, "|0|\n");
return;
}
return;
++successful_saves;
instr = mallok(1024);
- sprintf(instr, "Content-type: %s\n\nmsgid|%ld\n",
- SPOOLMIME, msgid);
+ sprintf(instr, "Content-type: %s\n\nmsgid|%ld\nsubmitted|%ld\n",
+ SPOOLMIME, msgid, time(NULL) );
for (i=0; i<SMTP->number_of_recipients; ++i) {
extract_token(buf, SMTP_RECP, i, '\n');
}
+
+
+/*****************************************************************************/
+/* SMTP CLIENT (OUTBOUND PROCESSING) STUFF */
+/*****************************************************************************/
+
+/*
+ * smtp_do_queue()
+ *
+ * Run through the queue sending out messages.
+ */
+void smtp_do_queue(void) {
+}
+
+
+
+
+
+/*****************************************************************************/
+/* MODULE INITIALIZATION STUFF */
+/*****************************************************************************/
+
+
char *Dynamic_Module_Init(void)
{
SYM_SMTP = CtdlGetDynamicSymbol();
second parameter specifies the message ID in the local database.
+ INSTRUCTION: submitted
+ SYNTAX: submitted|999999999
+ DESCRIPTION:
+ Contains a timestamp designating when this message was first entered into
+ the system.
+
+
INSTRUCTION: local
SYNTAX: local|Friko Mumjiboolean|0
DESCRIPTION:
INSTRUCTION: remote
- SYNTAX: remote|billg@microsoft.com|0
+ SYNTAX: remote|billg@microsoft.com|0|delivery status message
DESCRIPTION:
Names a recipient on a remote system to which the message should be
- delivered. (FIX ... this is where we have to keep track of multiple
- delivery attempts and transient errors)
+ delivered. The third parameter may contain any of the following values:
+ 0 = No delivery has yet been attempted
+ 2 = Delivery was successful
+ 3 = A transient error was experienced ... try again later
+ 5 = Delivery to this address failed permanently. The error message
+ should be placed in the fourth field so that a bounce message may
+ be generated.
INSTRUCTION: ignet
- SYNTAX: ignet|uncnsrd|Lobby|0
+ SYNTAX: ignet|uncnsrd|Lobby|0|delivery status message
DESCRIPTION:
Names a room on another Citadel node to which this message needs to be
spooled over the network.