char *mmdlm1 = "\001\001\001\001\n";
char *mmdlm2 = "\001\001\001\001\n";
-/* Cache the username and fullname of the user */
+/* Cache the username, fullname, and mailbox of the user */
static char username[BUFSIZ];
static char fullname[BUFSIZ];
+static char localmbox[BUFSIZ];
/* Variables for username masquerading: */
boolean draft_from_masquerading = FALSE; /* also used from post.c */
/*
* MTS specific variables
*/
-#if defined(SMTPMTS)
static char *sm_method = "smtp";
int sm_mts = MTS_SMTP;
char *hostable = nmhetcdir(/hosts);
char *sendmail = SENDMAILPATH;
-#endif
/*
* SMTP/POP stuff
{ "mmdelim1", &mmdlm1 },
{ "mmdelim2", &mmdlm2 },
{ "masquerade", &masquerade },
-
-#if defined(SMTPMTS)
{ "mts", &sm_method },
{ "hostable", &hostable },
{ "sendmail", &sendmail },
-#endif
-
{ "clientname", &clientname },
{ "servers", &servers },
{ "pophost", &pophost },
if (strstr(masquerade, "username_extension") != NULL)
username_extension_masquerading = TRUE;
-#ifdef SMTPMTS
if (strcmp(sm_method, "smtp") == 0)
sm_mts = MTS_SMTP;
else if (strcmp(sm_method, "sendmail") == 0)
advise(NULL, "unsupported \"mts\" value in mts.conf: %s", sm_method);
sm_mts = MTS_SMTP;
}
-#endif
}
/*
+ * Get the full local mailbox name. This is in the form:
+ *
+ * User Name <user@name.com>
+ */
+
+char *
+getlocalmbox (void)
+{
+ if (username[0] == '\0')
+ getuserinfo();
+
+ if (localmbox[0] == '\0') {
+ char *cp;
+
+ if ((cp = context_find("Local-Mailbox")) != NULL) {
+ strncpy(localmbox, cp, sizeof(localmbox));
+ } else {
+ snprintf(localmbox, sizeof(localmbox), "%s <%s@%s>", fullname,
+ username, LocalName(0));
+ }
+
+ localmbox[sizeof(localmbox) - 1] = '\0';
+ }
+
+ return localmbox;
+}
+
+/*
* Find the user's username and full name, and cache them.
* Also, handle "mmailid" username masquerading controlled from the GECOS field
* of the passwd file.
strncpy (username, pw->pw_name, sizeof(username));
/* The $SIGNATURE environment variable overrides the GECOS field's idea of
- your real name. */
+ your real name. If SIGNATURE isn't set, use the Signature profile
+ setting if it exists. */
if ((cp = getenv ("SIGNATURE")) && *cp)
strncpy (fullname, cp, sizeof(fullname));
+ else if ((cp = context_find("Signature")))
+ strncpy (fullname, cp, sizeof(fullname));
if (strchr(fullname, '.')) { /* quote any .'s */
char tmp[BUFSIZ];
strncpy (fullname, tmp, sizeof(fullname));
}
+ fullname[sizeof(fullname) - 1] = '\0';
+
+ localmbox[0] = '\0';
+
return;
}