#include <h/mts.h>
#include <h/utils.h>
-#define uptolow(c) ((isalpha(c) && isupper (c)) ? tolower (c) : c)
-
#define MAX_SM_FIELD 1476 /* < largest hdr field sendmail will accept */
#define FCCS 10 /* max number of fccs allowed */
static int get_header (char *, struct headers *);
static void putadr (char *, struct mailname *);
static int putone (char *, int, int);
-static void insert_fcc (struct headers *, char *);
+static void insert_fcc (struct headers *, unsigned char *);
static void file (char *);
static void fcc (char *, char *);
struct headers *h;
for (h = table; h->value; h++)
- if (!strcasecmp (header, h->value))
+ if (!mh_strcasecmp (header, h->value))
return (h - table);
return NOTOK;
static void
-insert_fcc (struct headers *hdr, char *pp)
+insert_fcc (struct headers *hdr, unsigned char *pp)
{
- char *cp;
+ unsigned char *cp;
for (cp = pp; isspace (*cp); cp++)
continue;
chmod (bccfil, 0600);
fprintf (out, "Date: %s\n", dtimenow (0));
- fprintf (out, "From: %s\n", signature);
+ if (msgflags & MFRM) {
+ /* There was already a From: in the draft. Don't add one. */
+ if (!draft_from_masquerading)
+ /* mts.conf didn't contain "masquerade:[...]draft_from[...]"
+ so we'll reveal the user's actual account@thismachine
+ address in a Sender: header (and use it as the envelope
+ From: later). */
+ fprintf (out, "Sender: %s\n", from);
+ }
+ else
+ /* Construct a From: header. */
+ fprintf (out, "From: %s\n", signature);
if (subject)
fprintf (out, "Subject: %s", subject);
fprintf (out, "BCC:\n\n------- Blind-Carbon-Copy\n\n");