MIME 8 to 7 bit support
authorEric Allman <eric@ucbvax.Berkeley.EDU>
Sat, 23 Jul 1994 23:00:21 +0000 (15:00 -0800)
committerEric Allman <eric@ucbvax.Berkeley.EDU>
Sat, 23 Jul 1994 23:00:21 +0000 (15:00 -0800)
SCCS-vsn: usr.sbin/sendmail/src/usersmtp.c 8.21
SCCS-vsn: usr.sbin/sendmail/src/headers.c 8.34
SCCS-vsn: usr.sbin/sendmail/src/main.c 8.63
SCCS-vsn: usr.sbin/sendmail/src/collect.c 8.17
SCCS-vsn: usr.sbin/sendmail/src/sendmail.h 8.46
SCCS-vsn: usr.sbin/sendmail/src/savemail.c 8.33
SCCS-vsn: usr.sbin/sendmail/src/Makefile 8.5
SCCS-vsn: usr.sbin/sendmail/src/srvrsmtp.c 8.43
SCCS-vsn: usr.sbin/sendmail/src/util.c 8.42
SCCS-vsn: usr.sbin/sendmail/src/readcf.c 8.26
SCCS-vsn: usr.sbin/sendmail/src/deliver.c 8.88
SCCS-vsn: usr.sbin/sendmail/src/queue.c 8.42
SCCS-vsn: usr.sbin/sendmail/src/conf.c 8.98
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.dist 8.13
SCCS-vsn: usr.sbin/sendmail/src/TRACEFLAGS 8.7
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.HP-UX 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.386BSD 8.2
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.AIX 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.AUX 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.BSD43 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.BSD-OS 8.2
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.ConvexOS 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.dgux 8.5
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.Dell 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.DomainOS 8.6
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.Dynix 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.FreeBSD 8.2
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.IRIX 8.6
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.Linux 8.9
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.Mach386 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.NeXT 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.NetBSD 8.2
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.OSF1 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.PTX 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.RISCos 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.SCO 8.5
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.SVR4 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.Solaris 8.7
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.SunOS 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.Titan 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.SunOS.4.0 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.SunOS.5.3 8.6
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.SunOS.5.4 8.6
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.ULTRIX 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.UMAX 8.4
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.Utah 8.2
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.CLIX 8.2
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.NCR3000 8.3
SCCS-vsn: usr.sbin/sendmail/src/Makefiles/Makefile.NonStop-UX 8.3

49 files changed:
usr/src/usr.sbin/sendmail/src/Makefile
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.386BSD
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.AIX
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.AUX
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.BSD-OS
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.BSD43
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.CLIX
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.ConvexOS
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.Dell
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.DomainOS
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.Dynix
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.FreeBSD
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.HP-UX
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.IRIX
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.Linux
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.Mach386
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.NCR3000
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.NeXT
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.NetBSD
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.NonStop-UX
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.OSF1
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.PTX
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.RISCos
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.SCO
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.SVR4
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.Solaris
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.SunOS
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.SunOS.4.0
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.SunOS.5.3
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.SunOS.5.4
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.Titan
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.ULTRIX
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.UMAX
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.Utah
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.dgux
usr/src/usr.sbin/sendmail/src/Makefiles/Makefile.dist
usr/src/usr.sbin/sendmail/src/TRACEFLAGS
usr/src/usr.sbin/sendmail/src/collect.c
usr/src/usr.sbin/sendmail/src/conf.c
usr/src/usr.sbin/sendmail/src/deliver.c
usr/src/usr.sbin/sendmail/src/headers.c
usr/src/usr.sbin/sendmail/src/main.c
usr/src/usr.sbin/sendmail/src/queue.c
usr/src/usr.sbin/sendmail/src/readcf.c
usr/src/usr.sbin/sendmail/src/savemail.c
usr/src/usr.sbin/sendmail/src/sendmail.h
usr/src/usr.sbin/sendmail/src/srvrsmtp.c
usr/src/usr.sbin/sendmail/src/usersmtp.c
usr/src/usr.sbin/sendmail/src/util.c

index 6ab4e50..73017ba 100644 (file)
@@ -16,8 +16,8 @@ CFLAGS+=-I${.CURDIR} ${DBMDEF} -DNETISO
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
-       mci.c parseaddr.c queue.c readcf.c recipient.c savemail.c srvrsmtp.c \
-       stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
+       mci.c mime.c parseaddr.c queue.c readcf.c recipient.c savemail.c \
+       srvrsmtp.c stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
        util.c version.c
 DPADD= 
 LDADD= 
        util.c version.c
 DPADD= 
 LDADD= 
index a70f09f..71db4db 100644 (file)
@@ -16,8 +16,8 @@ CFLAGS+=-I${.CURDIR} ${DBMDEF} -DMIME
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
-       mci.c parseaddr.c queue.c readcf.c recipient.c savemail.c srvrsmtp.c \
-       stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
+       mci.c mime.c parseaddr.c queue.c readcf.c recipient.c savemail.c \
+       srvrsmtp.c stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
        util.c version.c
 DPADD= 
 LDADD= $(LIBUTIL)
        util.c version.c
 DPADD= 
 LDADD= $(LIBUTIL)
index 5c5ce5b..0296af7 100644 (file)
@@ -7,7 +7,7 @@
 #
 #  This has been tested on AIX 3.1.5 and 3.2.3e.
 #
 #
 #  This has been tested on AIX 3.1.5 and 3.2.3e.
 #
-#      @(#)Makefile.AIX        8.3 (Berkeley) %G%
+#      @(#)Makefile.AIX        8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -63,7 +63,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 8361b25..74f2e67 100644 (file)
@@ -5,7 +5,7 @@
 #  old make program (I recommend that you get and port the new make if you
 #  are going to be doing any signficant work on sendmail).
 #
 #  old make program (I recommend that you get and port the new make if you
 #  are going to be doing any signficant work on sendmail).
 #
-#      @(#)Makefile.AUX        8.3 (Berkeley) %G%
+#      @(#)Makefile.AUX        8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -55,7 +55,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 35f4826..4d155d7 100644 (file)
@@ -6,8 +6,8 @@ CFLAGS+=-I${.CURDIR} ${DBMDEF} -DNETISO
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
-       mci.c parseaddr.c queue.c readcf.c recipient.c savemail.c srvrsmtp.c \
-       stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
+       mci.c mime.c parseaddr.c queue.c readcf.c recipient.c savemail.c \
+       srvrsmtp.c stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
        util.c version.c
 DPADD= ${LIBUTIL} ${LIBKVM}
 LDADD= -lutil -lkvm
        util.c version.c
 DPADD= ${LIBUTIL} ${LIBKVM}
 LDADD= -lutil -lkvm
index 1c9aed2..9e810de 100644 (file)
@@ -11,7 +11,7 @@
 #      It should also work on UMIPS-BSD from MIPS, if you still have
 #      any lying around.
 #
 #      It should also work on UMIPS-BSD from MIPS, if you still have
 #      any lying around.
 #
-#      @(#)Makefile.BSD43      8.3 (Berkeley) %G%
+#      @(#)Makefile.BSD43      8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -61,7 +61,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index b6cfacf..f916223 100644 (file)
@@ -8,7 +8,7 @@
 #
 #  --Paul Southworth <pauls@cic.net>
 #
 #
 #  --Paul Southworth <pauls@cic.net>
 #
-#      @(#)Makefile.CLIX       8.1 (Berkeley) %G%
+#      @(#)Makefile.CLIX       8.2 (Berkeley) %G%
 #
 
 # make sure the shell constructs below use the right shell
 #
 
 # make sure the shell constructs below use the right shell
@@ -60,7 +60,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index fa1b20a..a81c0d8 100644 (file)
@@ -7,7 +7,7 @@
 #
 #  This has been tested on CxOS 11.0 beta 1 and 10.x.
 #
 #
 #  This has been tested on CxOS 11.0 beta 1 and 10.x.
 #
-#      @(#)Makefile.ConvexOS   8.3 (Berkeley) %G%
+#      @(#)Makefile.ConvexOS   8.4 (Berkeley) %G%
 #
 
 
 #
 
 
@@ -55,7 +55,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 9d694ba..39ea8ba 100644 (file)
@@ -9,7 +9,7 @@
 #      <kim@grendel.lut.fi> -- I haven't tested this myself.  It may
 #      work on other SVR4 ports.
 #
 #      <kim@grendel.lut.fi> -- I haven't tested this myself.  It may
 #      work on other SVR4 ports.
 #
-#      @(#)Makefile.Dell       8.3 (Berkeley) %G%
+#      @(#)Makefile.Dell       8.4 (Berkeley) %G%
 #
 
 # make sure the shell constructs below use the right shell
 #
 
 # make sure the shell constructs below use the right shell
@@ -62,7 +62,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index df0689e..98a8683 100644 (file)
@@ -7,7 +7,7 @@
 #
 #  This has been tested on DomainOS 10.3.5
 #
 #
 #  This has been tested on DomainOS 10.3.5
 #
-#      @(#)Makefile.DomainOS   8.5 (Berkeley) %G%
+#      @(#)Makefile.DomainOS   8.6 (Berkeley) %G%
 #
 #
 
 #
 #
 
@@ -66,7 +66,7 @@ CFLAGS=       -I. -A nansi $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index fb03e57..bb5ad17 100644 (file)
@@ -11,7 +11,7 @@
 #      instead.  I compiled it with gcc 1.40a.  The -lseq is to pick
 #      up getopt.''
 #
 #      instead.  I compiled it with gcc 1.40a.  The -lseq is to pick
 #      up getopt.''
 #
-#      @(#)Makefile.Dynix      8.3 (Berkeley) %G%
+#      @(#)Makefile.Dynix      8.4 (Berkeley) %G%
 #
 
 CC= gcc
 #
 
 CC= gcc
@@ -63,7 +63,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 8a02731..daabfff 100644 (file)
@@ -20,8 +20,8 @@ CFLAGS+=-I${.CURDIR} ${DBMDEF} -DMIME -DUSEUNAME
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
-       mci.c parseaddr.c queue.c readcf.c recipient.c savemail.c srvrsmtp.c \
-       stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
+       mci.c mime.c parseaddr.c queue.c readcf.c recipient.c savemail.c \
+       srvrsmtp.c stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
        util.c version.c
 DPADD= 
 LDADD= $(LIBUTIL)
        util.c version.c
 DPADD= 
 LDADD= $(LIBUTIL)
index 6144724..df94ef4 100644 (file)
@@ -7,7 +7,7 @@
 #
 #  This has been tested on HP-UX 8.07 on 7xx series.
 #
 #
 #  This has been tested on HP-UX 8.07 on 7xx series.
 #
-#      @(#)Makefile.HP-UX      8.3 (Berkeley) %G%
+#      @(#)Makefile.HP-UX      8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -56,7 +56,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 741e1f2..6bbe19c 100644 (file)
@@ -7,7 +7,7 @@
 #
 #  This has been tested on IRIX 4.0.4.
 #
 #
 #  This has been tested on IRIX 4.0.4.
 #
-#      @(#)Makefile.IRIX       8.5 (Berkeley) %G%
+#      @(#)Makefile.IRIX       8.6 (Berkeley) %G%
 #
 SHELL= /bin/sh
 
 #
 SHELL= /bin/sh
 
@@ -56,7 +56,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index b43c54b..f120202 100644 (file)
@@ -11,7 +11,7 @@
 #  Makefile is likely to require a lot of customization.  Read it over
 #  carefully before proceeding.
 #
 #  Makefile is likely to require a lot of customization.  Read it over
 #  carefully before proceeding.
 #
-#      @(#)Makefile.Linux      8.8 (Berkeley) %G%
+#      @(#)Makefile.Linux      8.9 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -61,7 +61,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index c813076..b1738bb 100644 (file)
@@ -5,7 +5,7 @@
 #  old make program (I recommend that you get and port the new make if you
 #  are going to be doing any signficant work on sendmail).
 #
 #  old make program (I recommend that you get and port the new make if you
 #  are going to be doing any signficant work on sendmail).
 #
-#      @(#)Makefile.Mach386    8.3 (Berkeley) %G%
+#      @(#)Makefile.Mach386    8.4 (Berkeley) %G%
 #
 
 CC=    gcc
 #
 
 CC=    gcc
@@ -57,7 +57,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 62ffe8e..b9f5c37 100644 (file)
@@ -7,7 +7,7 @@
 #
 #      NCR 3000 support from Kevin Darcy <kevin@tech.mis.cfc.com>.
 #
 #
 #      NCR 3000 support from Kevin Darcy <kevin@tech.mis.cfc.com>.
 #
-#      @(#)Makefile.NCR3000    8.2 (Berkeley) %G%
+#      @(#)Makefile.NCR3000    8.3 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -57,7 +57,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 11af3ee..4a1de40 100644 (file)
@@ -7,7 +7,7 @@
 #
 #  This has been tested on NeXT 2.1.
 #
 #
 #  This has been tested on NeXT 2.1.
 #
-#      @(#)Makefile.NeXT       8.3 (Berkeley) %G%
+#      @(#)Makefile.NeXT       8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -57,7 +57,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index dc0e1d7..b36f18b 100644 (file)
@@ -23,8 +23,8 @@ CFLAGS=-I${.CURDIR} ${DBMDEF} -DNETISO
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
-       mci.c parseaddr.c queue.c readcf.c recipient.c savemail.c srvrsmtp.c \
-       stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
+       mci.c mime.c parseaddr.c queue.c readcf.c recipient.c savemail.c \
+       srvrsmtp.c stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
        util.c version.c
 MAN1=  mailq.0 newaliases.0
 MAN5=  aliases.0
        util.c version.c
 MAN1=  mailq.0 newaliases.0
 MAN5=  aliases.0
index 4449da4..ee4b520 100644 (file)
@@ -9,7 +9,7 @@
 #      (I don't think this actually compiles cleanly -- I had trouble
 #       integrating Rick's changes.  EPA 6/94)
 #
 #      (I don't think this actually compiles cleanly -- I had trouble
 #       integrating Rick's changes.  EPA 6/94)
 #
-#      @(#)Makefile.NonStop-UX 8.2 (Berkeley) %G%
+#      @(#)Makefile.NonStop-UX 8.3 (Berkeley) %G%
 #
 
 # make sure the shell constructs below use the right shell
 #
 
 # make sure the shell constructs below use the right shell
@@ -61,7 +61,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 1205847..5adb77b 100644 (file)
@@ -7,7 +7,7 @@
 #
 #  This has been tested on OSF/1 1.3
 #
 #
 #  This has been tested on OSF/1 1.3
 #
-#      @(#)Makefile.OSF1       8.3 (Berkeley) %G%
+#      @(#)Makefile.OSF1       8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -57,7 +57,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 016d2c1..69228f8 100644 (file)
@@ -9,7 +9,7 @@
 #
 #      From Tim "Pinball Wizard" Wright <timw@sequent.com>.
 #
 #
 #      From Tim "Pinball Wizard" Wright <timw@sequent.com>.
 #
-#      @(#)Makefile.PTX        8.3 (Berkeley) %G%
+#      @(#)Makefile.PTX        8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -62,7 +62,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 3a18a03..e145549 100644 (file)
@@ -7,7 +7,7 @@
 #
 #      For Mips RISC/os 4.52.
 #
 #
 #      For Mips RISC/os 4.52.
 #
-#      @(#)Makefile.RISCos     8.3 (Berkeley) %G%
+#      @(#)Makefile.RISCos     8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -60,7 +60,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index e2fa15c..7ff2c51 100644 (file)
@@ -7,7 +7,7 @@
 #
 #  This has been tested on SCO.
 #
 #
 #  This has been tested on SCO.
 #
-#      @(#)Makefile.SCO        8.4 (Berkeley) %G%
+#      @(#)Makefile.SCO        8.5 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -54,7 +54,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 300666a..3ef390f 100644 (file)
@@ -9,7 +9,7 @@
 #      <kim@grendel.lut.fi> -- I haven't tested this myself.  It may
 #      work on other SVR4 ports.
 #
 #      <kim@grendel.lut.fi> -- I haven't tested this myself.  It may
 #      work on other SVR4 ports.
 #
-#      @(#)Makefile.SVR4       8.3 (Berkeley) %G%
+#      @(#)Makefile.SVR4       8.4 (Berkeley) %G%
 #
 
 # make sure the shell constructs below use the right shell
 #
 
 # make sure the shell constructs below use the right shell
@@ -62,7 +62,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index ba9a3e7..1fd7e7b 100644 (file)
@@ -8,7 +8,7 @@
 #  This has been tested on Solaris 2.1 and 2.2.  If you are compiling
 #  for Solaris 2.3, use Makefile.SunOS.5.x.
 #
 #  This has been tested on Solaris 2.1 and 2.2.  If you are compiling
 #  for Solaris 2.3, use Makefile.SunOS.5.x.
 #
-#      @(#)Makefile.Solaris    8.6 (Berkeley) %G%
+#      @(#)Makefile.Solaris    8.7 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -62,7 +62,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index b16ee41..905d09b 100644 (file)
@@ -10,7 +10,7 @@
 #              create empty files stdlib.h and stddef.h in your
 #              compile directory.
 #
 #              create empty files stdlib.h and stddef.h in your
 #              compile directory.
 #
-#      @(#)Makefile.SunOS      8.3 (Berkeley) %G%
+#      @(#)Makefile.SunOS      8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -61,7 +61,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 21edaf5..a9e25aa 100644 (file)
@@ -8,7 +8,7 @@
 #      You may find you need to find versions of some routines
 #      such as strcasecmp in order to link this on SunOS 4.0.3.
 #
 #      You may find you need to find versions of some routines
 #      such as strcasecmp in order to link this on SunOS 4.0.3.
 #
-#      @(#)Makefile.SunOS.4.0  8.3 (Berkeley) %G%
+#      @(#)Makefile.SunOS.4.0  8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -60,7 +60,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 416c414..74b3484 100644 (file)
@@ -7,7 +7,7 @@
 #
 #  This has been tested on Solaris 2.3.
 #
 #
 #  This has been tested on Solaris 2.3.
 #
-#      @(#)Makefile.SunOS.5.3  8.5 (Berkeley) %G%
+#      @(#)Makefile.SunOS.5.3  8.6 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -61,7 +61,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 93ab310..b4559f0 100644 (file)
@@ -7,7 +7,7 @@
 #
 #  This has been tested on Solaris 2.3.
 #
 #
 #  This has been tested on Solaris 2.3.
 #
-#      @(#)Makefile.SunOS.5.4  8.5 (Berkeley) %G%
+#      @(#)Makefile.SunOS.5.4  8.6 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -61,7 +61,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 646f992..1f41527 100644 (file)
@@ -5,7 +5,7 @@
 #  old make program (I recommend that you get and port the new make if you
 #  are going to be doing any signficant work on sendmail).
 #
 #  old make program (I recommend that you get and port the new make if you
 #  are going to be doing any signficant work on sendmail).
 #
-#      @(#)Makefile.Titan      8.3 (Berkeley) %G%
+#      @(#)Makefile.Titan      8.4 (Berkeley) %G%
 #
 
 # put the compiler in BSD mode
 #
 
 # put the compiler in BSD mode
@@ -61,7 +61,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index b1709f8..ed0998c 100644 (file)
@@ -7,7 +7,7 @@
 #
 #      This has been tested on Ultrix 4.2A and 4.3A.
 #
 #
 #      This has been tested on Ultrix 4.2A and 4.3A.
 #
-#      @(#)Makefile.ULTRIX     8.3 (Berkeley) %G%
+#      @(#)Makefile.ULTRIX     8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -57,7 +57,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index 48d8ca0..0fcbfe5 100644 (file)
@@ -7,7 +7,7 @@
 #
 #      This has been tested on Encore UMAX V
 #
 #
 #      This has been tested on Encore UMAX V
 #
-#      @(#)Makefile.UMAX       8.3 (Berkeley) %G%
+#      @(#)Makefile.UMAX       8.4 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -64,7 +64,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index a821c7d..57ed666 100644 (file)
@@ -16,8 +16,8 @@ CFLAGS+=-I${.CURDIR} ${DBMDEF} -Dsetpgid=setpgrp
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
 
 SRCS=  alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \
        deliver.c domain.c envelope.c err.c headers.c macro.c main.c map.c \
-       mci.c parseaddr.c queue.c readcf.c recipient.c savemail.c srvrsmtp.c \
-       stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
+       mci.c mci.c parseaddr.c queue.c readcf.c recipient.c savemail.c \
+       srvrsmtp.c stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \
        util.c version.c
 DPADD= ${LIBDBM} ${LIBCOMPAT}
 LDADD= 
        util.c version.c
 DPADD= ${LIBDBM} ${LIBCOMPAT}
 LDADD= 
index 09e2c04..589c70b 100644 (file)
@@ -2,7 +2,7 @@
 #  Tested on DG/UX 5.4.2 by A. Bryan Curnutt <bryan@Stoner.COM>.
 #  Updated for DG/UX 5.4.3 by Mark T. Robinson <mtr@ornl.gov>.
 #
 #  Tested on DG/UX 5.4.2 by A. Bryan Curnutt <bryan@Stoner.COM>.
 #  Updated for DG/UX 5.4.3 by Mark T. Robinson <mtr@ornl.gov>.
 #
-#      @(#)Makefile.dgux       8.4 (Berkeley) %G%
+#      @(#)Makefile.dgux       8.5 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -53,7 +53,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index f7c714c..37bee3a 100644 (file)
@@ -5,7 +5,7 @@
 #  old make program (I recommend that you get and port the new make if you
 #  are going to be doing any signficant work on sendmail).
 #
 #  old make program (I recommend that you get and port the new make if you
 #  are going to be doing any signficant work on sendmail).
 #
-#      @(#)Makefile.dist       8.12 (Berkeley) %G%
+#      @(#)Makefile.dist       8.13 (Berkeley) %G%
 #
 
 # use O=-O (usual) or O=-g (debugging)
 #
 
 # use O=-O (usual) or O=-g (debugging)
@@ -55,7 +55,7 @@ CFLAGS=       -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF}
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
 
 OBJS=  alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \
        deliver.o domain.o envelope.o err.o headers.o macro.o main.o \
-       map.o mci.o parseaddr.o queue.o readcf.o recipient.o \
+       map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
        savemail.o srvrsmtp.o stab.o stats.o sysexits.o \
        trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
 
index f05c219..e7cf9e5 100644 (file)
@@ -50,6 +50,7 @@
 40     queue.c         queueup, orderq, dowork
 41     queue.c         orderq
 42     mci.c           mci_get
 40     queue.c         queueup, orderq, dowork
 41     queue.c         orderq
 42     mci.c           mci_get
+43     mime.c          mime8to7
 45     envelope.c      setsender
 46     envelope.c      openxscript
 49     conf.c          checkcompat
 45     envelope.c      setsender
 46     envelope.c      openxscript
 49     conf.c          checkcompat
index deaee2d..7d5db07 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)collect.c  8.16 (Berkeley) %G%";
+static char sccsid[] = "@(#)collect.c  8.17 (Berkeley) %G%";
 #endif /* not lint */
 
 # include <errno.h>
 #endif /* not lint */
 
 # include <errno.h>
@@ -21,6 +21,7 @@ static char sccsid[] = "@(#)collect.c 8.16 (Berkeley) %G%";
 **     stripped off (after important information is extracted).
 **
 **     Parameters:
 **     stripped off (after important information is extracted).
 **
 **     Parameters:
+**             fp -- file to read.
 **             from -- the person we think it may be from.  If
 **                     there is a "From" line, we will replace
 **                     the name of the person by this.  If NULL,
 **             from -- the person we think it may be from.  If
 **                     there is a "From" line, we will replace
 **                     the name of the person by this.  If NULL,
@@ -46,6 +47,7 @@ maketemp(from)
        time_t dbto = smtpmode ? TimeOuts.to_datablock : 0;
        register char *workbuf, *freebuf;
        bool inputerr = FALSE;
        time_t dbto = smtpmode ? TimeOuts.to_datablock : 0;
        register char *workbuf, *freebuf;
        bool inputerr = FALSE;
+       bool headeronly = FALSE;
        char buf[MAXLINE], buf2[MAXLINE];
        extern char *hvalue();
        extern bool isheader(), flusheol();
        char buf[MAXLINE], buf2[MAXLINE];
        extern char *hvalue();
        extern bool isheader(), flusheol();
@@ -53,18 +55,26 @@ maketemp(from)
 
        CollectErrorMessage = NULL;
        CollectErrno = 0;
 
        CollectErrorMessage = NULL;
        CollectErrno = 0;
+       if (hdrp == NULL)
+               hdrp = &e->e_header;
+       else
+               headeronly = TRUE;
 
        /*
        **  Create the temp file name and create the file.
        */
 
 
        /*
        **  Create the temp file name and create the file.
        */
 
-       e->e_df = queuename(e, 'd');
-       e->e_df = newstr(e->e_df);
-       if ((tf = dfopen(e->e_df, O_WRONLY|O_CREAT|O_TRUNC, FileMode)) == NULL)
+       if (!headeronly)
        {
        {
-               syserr("Cannot create %s", e->e_df);
-               e->e_flags |= EF_NORETURN;
-               finis();
+               e->e_df = queuename(e, 'd');
+               e->e_df = newstr(e->e_df);
+               if ((tf = dfopen(e->e_df, O_WRONLY|O_CREAT|O_TRUNC, FileMode)) == NULL)
+               {
+                       syserr("Cannot create %s", e->e_df);
+                       e->e_flags |= EF_NORETURN;
+                       finis();
+               }
+               HasEightBits = FALSE;
        }
 
        /*
        }
 
        /*
@@ -81,17 +91,16 @@ maketemp(from)
        **  Try to read a UNIX-style From line
        */
 
        **  Try to read a UNIX-style From line
        */
 
-       if (sfgets(buf, MAXLINE, InChannel, dbto,
-                       "initial message read") == NULL)
+       if (sfgets(buf, MAXLINE, fp, dbto, "initial message read") == NULL)
                goto readerr;
        fixcrlf(buf, FALSE);
 # ifndef NOTUNIX
                goto readerr;
        fixcrlf(buf, FALSE);
 # ifndef NOTUNIX
-       if (!SaveFrom && strncmp(buf, "From ", 5) == 0)
+       if (!headeronly && !SaveFrom && strncmp(buf, "From ", 5) == 0)
        {
        {
-               if (!flusheol(buf, InChannel, dbto))
+               if (!flusheol(buf, fp, dbto))
                        goto readerr;
                eatfrom(buf, e);
                        goto readerr;
                eatfrom(buf, e);
-               if (sfgets(buf, MAXLINE, InChannel, dbto,
+               if (sfgets(buf, MAXLINE, fp, dbto,
                                "message header read") == NULL)
                        goto readerr;
                fixcrlf(buf, FALSE);
                                "message header read") == NULL)
                        goto readerr;
                fixcrlf(buf, FALSE);
@@ -99,7 +108,7 @@ maketemp(from)
 # endif /* NOTUNIX */
 
        /*
 # endif /* NOTUNIX */
 
        /*
-       **  Copy InChannel to temp file & do message editing.
+       **  Copy fp to temp file & do message editing.
        **      To keep certain mailers from getting confused,
        **      and to keep the output clean, lines that look
        **      like UNIX "From" lines are deleted in the header.
        **      To keep certain mailers from getting confused,
        **      and to keep the output clean, lines that look
        **      like UNIX "From" lines are deleted in the header.
@@ -122,7 +131,7 @@ maketemp(from)
                }
 
                /* if the line is too long, throw the rest away */
                }
 
                /* if the line is too long, throw the rest away */
-               if (!flusheol(workbuf, InChannel, dbto))
+               if (!flusheol(workbuf, fp, dbto))
                        goto readerr;
 
                /* it's okay to toss '\n' now (flusheol() needed it) */
                        goto readerr;
 
                /* it's okay to toss '\n' now (flusheol() needed it) */
@@ -138,8 +147,7 @@ maketemp(from)
                {
                        int clen;
 
                {
                        int clen;
 
-                       if (sfgets(freebuf, MAXLINE, InChannel,
-                                       dbto,
+                       if (sfgets(freebuf, MAXLINE, fp, dbto,
                                        "message header read") == NULL)
                        {
                                freebuf[0] = '\0';
                                        "message header read") == NULL)
                        {
                                freebuf[0] = '\0';
@@ -150,7 +158,7 @@ maketemp(from)
                        if (*freebuf != ' ' && *freebuf != '\t')
                                break;
 
                        if (*freebuf != ' ' && *freebuf != '\t')
                                break;
 
-                       if (!flusheol(freebuf, InChannel, dbto))
+                       if (!flusheol(freebuf, fp, dbto))
                                goto readerr;
 
                        fixcrlf(freebuf, TRUE);
                                goto readerr;
 
                        fixcrlf(freebuf, TRUE);
@@ -216,10 +224,17 @@ maketemp(from)
        if (tTd(30, 1))
                printf("EOH\n");
 
        if (tTd(30, 1))
                printf("EOH\n");
 
+       if (headeronly)
+       {
+               if (*workbuf != '\0')
+                       syserr("collect: lost first line of message");
+               goto readerr;
+       }
+
        if (*workbuf == '\0')
        {
                /* throw away a blank line */
        if (*workbuf == '\0')
        {
                /* throw away a blank line */
-               if (sfgets(buf, MAXLINE, InChannel, dbto,
+               if (sfgets(buf, MAXLINE, fp, dbto,
                                "message separator read") == NULL)
                        goto readerr;
        }
                                "message separator read") == NULL)
                        goto readerr;
        }
@@ -255,14 +270,13 @@ maketemp(from)
                fputs("\n", tf);
                if (ferror(tf))
                        tferror(tf, e);
                fputs("\n", tf);
                if (ferror(tf))
                        tferror(tf, e);
-               if (sfgets(buf, MAXLINE, InChannel, dbto,
-                               "message body read") == NULL)
+               if (sfgets(buf, MAXLINE, fp, dbto, "message body read") == NULL)
                        goto readerr;
        }
 
                        goto readerr;
        }
 
-       if (feof(InChannel) || ferror(InChannel))
-       {
 readerr:
 readerr:
+       if ((feof(fp) && smtpmode) || ferror(fp))
+       {
                if (tTd(30, 1))
                        printf("collect: read error\n");
                inputerr = TRUE;
                if (tTd(30, 1))
                        printf("collect: read error\n");
                inputerr = TRUE;
@@ -271,12 +285,18 @@ readerr:
        /* reset global timer */
        sfgetset((time_t) 0);
 
        /* reset global timer */
        sfgetset((time_t) 0);
 
-       if (fflush(tf) != 0)
-               tferror(tf, e);
-       if (fsync(fileno(tf)) < 0 || fclose(tf) < 0)
+       if (headeronly)
+               return;
+
+       if (tf != NULL)
        {
        {
-               tferror(tf, e);
-               finis();
+               if (fflush(tf) != 0)
+                       tferror(tf, e);
+               if (fsync(fileno(tf)) < 0 || fclose(tf) < 0)
+               {
+                       tferror(tf, e);
+                       finis();
+               }
        }
 
        if (CollectErrorMessage != NULL && Errors <= 0)
        }
 
        if (CollectErrorMessage != NULL && Errors <= 0)
@@ -299,19 +319,19 @@ readerr:
                if (host == NULL)
                        host = "localhost";
 
                if (host == NULL)
                        host = "localhost";
 
-               if (feof(InChannel))
+               if (feof(fp))
                        problem = "unexpected close";
                        problem = "unexpected close";
-               else if (ferror(InChannel))
+               else if (ferror(fp))
                        problem = "I/O error";
                else
                        problem = "read timeout";
 # ifdef LOG
                        problem = "I/O error";
                else
                        problem = "read timeout";
 # ifdef LOG
-               if (LogLevel > 0 && feof(InChannel))
+               if (LogLevel > 0 && feof(fp))
                        syslog(LOG_NOTICE,
                            "collect: %s on connection from %s, sender=%s: %s\n",
                            problem, host, e->e_from.q_paddr, errstring(errno));
 # endif
                        syslog(LOG_NOTICE,
                            "collect: %s on connection from %s, sender=%s: %s\n",
                            problem, host, e->e_from.q_paddr, errstring(errno));
 # endif
-               if (feof(InChannel))
+               if (feof(fp))
                        usrerr("451 collect: %s on connection from %s, from=%s",
                                problem, host, e->e_from.q_paddr);
                else
                        usrerr("451 collect: %s on connection from %s, from=%s",
                                problem, host, e->e_from.q_paddr);
                else
@@ -344,8 +364,10 @@ readerr:
        **  Add an Apparently-To: line if we have no recipient lines.
        */
 
        **  Add an Apparently-To: line if we have no recipient lines.
        */
 
-       if (hvalue("to", e) == NULL && hvalue("cc", e) == NULL &&
-           hvalue("bcc", e) == NULL && hvalue("apparently-to", e) == NULL)
+       if (hvalue("to", e->e_header) == NULL &&
+           hvalue("cc", e->e_header) == NULL &&
+           hvalue("bcc", e->e_header) == NULL &&
+           hvalue("apparently-to", e->e_header) == NULL)
        {
                register ADDRESS *q;
 
        {
                register ADDRESS *q;
 
@@ -357,7 +379,7 @@ readerr:
                                continue;
                        if (tTd(30, 3))
                                printf("Adding Apparently-To: %s\n", q->q_paddr);
                                continue;
                        if (tTd(30, 3))
                                printf("Adding Apparently-To: %s\n", q->q_paddr);
-                       addheader("Apparently-To", q->q_paddr, e);
+                       addheader("Apparently-To", q->q_paddr, &e->e_header);
                }
        }
 
                }
        }
 
index ab347d6..eb1b90c 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)conf.c     8.97 (Berkeley) %G%";
+static char sccsid[] = "@(#)conf.c     8.98 (Berkeley) %G%";
 #endif /* not lint */
 
 # include "sendmail.h"
 #endif /* not lint */
 
 # include "sendmail.h"
@@ -183,7 +183,7 @@ setdefaults(e)
        MaxHopCount = 25;                       /* option h */
        e->e_sendmode = SM_FORK;                /* option d */
        e->e_errormode = EM_PRINT;              /* option e */
        MaxHopCount = 25;                       /* option h */
        e->e_sendmode = SM_FORK;                /* option d */
        e->e_errormode = EM_PRINT;              /* option e */
-       SevenBit = FALSE;                       /* option 7 */
+       SevenBitInput = FALSE;                  /* option 7 */
        MaxMciCache = 1;                        /* option k */
        MciCacheTimeout = 300;                  /* option K */
        LogLevel = 9;                           /* option L */
        MaxMciCache = 1;                        /* option k */
        MciCacheTimeout = 300;                  /* option K */
        LogLevel = 9;                           /* option L */
@@ -191,6 +191,7 @@ setdefaults(e)
        TimeOuts.to_q_return = 5 DAYS;          /* option T */
        TimeOuts.to_q_warning = 0;              /* option T */
        PrivacyFlags = 0;                       /* option p */
        TimeOuts.to_q_return = 5 DAYS;          /* option T */
        TimeOuts.to_q_warning = 0;              /* option T */
        PrivacyFlags = 0;                       /* option p */
+       MimeMode = MM_CVTMIME|MM_PASS8BIT;      /* option 8 */
        setdefuser();
        setupmaps();
        setupmailers();
        setdefuser();
        setupmaps();
        setupmailers();
index 4409665..1165095 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)deliver.c  8.87 (Berkeley) %G%";
+static char sccsid[] = "@(#)deliver.c  8.88 (Berkeley) %G%";
 #endif /* not lint */
 
 #include "sendmail.h"
 #endif /* not lint */
 
 #include "sendmail.h"
@@ -1377,7 +1377,7 @@ tryhost:
                */
 
                putfromline(mci, e);
                */
 
                putfromline(mci, e);
-               (*e->e_puthdr)(mci, e);
+               (*e->e_puthdr)(mci, e->e_header, e);
                putline("\n", mci);
                (*e->e_putbody)(mci, e, NULL);
 
                putline("\n", mci);
                (*e->e_putbody)(mci, e, NULL);
 
@@ -2057,26 +2057,52 @@ putbody(mci, e, separator)
                                e->e_df, e->e_to, e->e_from.q_paddr);
                }
                else
                                e->e_df, e->e_to, e->e_from.q_paddr);
                }
                else
+               {
+                       if (bitset(MCIF_INHEADER, mci->mci_flags))
+                       {
+                               putline("", mci);
+                               mci->mci_flags &= ~MCIF_INHEADER;
+                       }
                        putline("<<< No Message Collected >>>", mci);
                        putline("<<< No Message Collected >>>", mci);
+               }
        }
        if (e->e_dfp != NULL)
        {
                rewind(e->e_dfp);
        }
        if (e->e_dfp != NULL)
        {
                rewind(e->e_dfp);
-               while (!ferror(mci->mci_out) && fgets(buf, sizeof buf, e->e_dfp) != NULL)
+
+               if (bitset(MCIF_CVT8TO7, mci->mci_flags))
+               {
+                       /* do 8 to 7 bit MIME conversion */
+                       if (hvalue("MIME-Version", e->e_header) == NULL)
+                               putline("MIME-Version: 1.0", mci);
+                       mime8to7(mci, e->e_header, e, NULL);
+               }
+               else
                {
                {
-                       if (buf[0] == 'F' &&
-                           bitnset(M_ESCFROM, mci->mci_mailer->m_flags) &&
-                           strncmp(buf, "From ", 5) == 0)
-                               (void) putc('>', mci->mci_out);
-                       if (buf[0] == '-' && buf[1] == '-' && separator != NULL)
+                       /* we can pass it through unmodified */
+                       if (bitset(MCIF_INHEADER, mci->mci_flags))
+                       {
+                               putline("", mci);
+                               mci->mci_flags &= ~MCIF_INHEADER;
+                       }
+                       while (!ferror(mci->mci_out) &&
+                              fgets(buf, sizeof buf, e->e_dfp) != NULL)
                        {
                        {
-                               /* possible separator */
-                               int sl = strlen(separator);
+                               if (buf[0] == 'F' &&
+                                   bitnset(M_ESCFROM, mci->mci_mailer->m_flags) &&
+                                   strncmp(buf, "From ", 5) == 0)
+                                       (void) putc('>', mci->mci_out);
+                               if (buf[0] == '-' && buf[1] == '-' &&
+                                   separator != NULL)
+                               {
+                                       /* possible separator */
+                                       int sl = strlen(separator);
 
 
-                               if (strncmp(&buf[2], separator, sl) == 0)
-                                       (void) putc(' ', mci->mci_out);
+                                       if (strncmp(&buf[2], separator, sl) == 0)
+                                               (void) putc(' ', mci->mci_out);
+                               }
+                               putline(buf, mci);
                        }
                        }
-                       putline(buf, mci);
                }
 
                if (ferror(e->e_dfp))
                }
 
                if (ferror(e->e_dfp))
@@ -2227,7 +2253,7 @@ mailfile(filename, ctladdr, e)
                        mcibuf.mci_flags |= MCIF_7BIT;
 
                putfromline(&mcibuf, e);
                        mcibuf.mci_flags |= MCIF_7BIT;
 
                putfromline(&mcibuf, e);
-               (*e->e_puthdr)(&mcibuf, e);
+               (*e->e_puthdr)(&mcibuf, e->e_header, e);
                putline("\n", &mcibuf);
                (*e->e_putbody)(&mcibuf, e, NULL);
                putline("\n", &mcibuf);
                putline("\n", &mcibuf);
                (*e->e_putbody)(&mcibuf, e, NULL);
                putline("\n", &mcibuf);
index 903943b..dbef1de 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)headers.c  8.33 (Berkeley) %G%";
+static char sccsid[] = "@(#)headers.c  8.34 (Berkeley) %G%";
 #endif /* not lint */
 
 # include <errno.h>
 #endif /* not lint */
 
 # include <errno.h>
@@ -225,7 +225,7 @@ chompheader(line, def, e)
 **     Parameters:
 **             field -- the name of the header field.
 **             value -- the value of the field.
 **     Parameters:
 **             field -- the name of the header field.
 **             value -- the value of the field.
-**             e -- the envelope to add them to.
+**             hp -- an indirect pointer to the header structure list.
 **
 **     Returns:
 **             none.
 **
 **     Returns:
 **             none.
@@ -234,10 +234,10 @@ chompheader(line, def, e)
 **             adds the field on the list of headers for this envelope.
 */
 
 **             adds the field on the list of headers for this envelope.
 */
 
-addheader(field, value, e)
+addheader(field, value, hdrlist)
        char *field;
        char *value;
        char *field;
        char *value;
-       ENVELOPE *e;
+       HDR **hdrlist;
 {
        register HDR *h;
        register struct hdrinfo *hi;
 {
        register HDR *h;
        register struct hdrinfo *hi;
@@ -251,7 +251,7 @@ addheader(field, value, e)
        }
 
        /* find current place in list -- keep back pointer? */
        }
 
        /* find current place in list -- keep back pointer? */
-       for (hp = &e->e_header; (h = *hp) != NULL; hp = &h->h_link)
+       for (hp = hdrlist; (h = *hp) != NULL; hp = &h->h_link)
        {
                if (strcasecmp(field, h->h_field) == 0)
                        break;
        {
                if (strcasecmp(field, h->h_field) == 0)
                        break;
@@ -274,7 +274,7 @@ addheader(field, value, e)
 **
 **     Parameters:
 **             field -- the field name.
 **
 **     Parameters:
 **             field -- the field name.
-**             e -- the envelope containing the header.
+**             header -- the header list.
 **
 **     Returns:
 **             pointer to the value part.
 **
 **     Returns:
 **             pointer to the value part.
@@ -285,13 +285,13 @@ addheader(field, value, e)
 */
 
 char *
 */
 
 char *
-hvalue(field, e)
+hvalue(field, header)
        char *field;
        char *field;
-       register ENVELOPE *e;
+       HDR *header;
 {
        register HDR *h;
 
 {
        register HDR *h;
 
-       for (h = e->e_header; h != NULL; h = h->h_link)
+       for (h = header; h != NULL; h = h->h_link)
        {
                if (!bitset(H_DEFAULT, h->h_flags) &&
                    strcasecmp(h->h_field, field) == 0)
        {
                if (!bitset(H_DEFAULT, h->h_flags) &&
                    strcasecmp(h->h_field, field) == 0)
@@ -368,7 +368,7 @@ eatheader(e, full)
                define('u', NULL, e);
 
        /* full name of from person */
                define('u', NULL, e);
 
        /* full name of from person */
-       p = hvalue("full-name", e);
+       p = hvalue("full-name", e->e_header);
        if (p != NULL)
                define('x', p, e);
 
        if (p != NULL)
                define('x', p, e);
 
@@ -450,7 +450,7 @@ eatheader(e, full)
                e->e_hopcount = hopcnt;
 
        /* message priority */
                e->e_hopcount = hopcnt;
 
        /* message priority */
-       p = hvalue("precedence", e);
+       p = hvalue("precedence", e->e_header);
        if (p != NULL)
                e->e_class = priencode(p);
        if (full)
        if (p != NULL)
                e->e_class = priencode(p);
        if (full)
@@ -459,9 +459,9 @@ eatheader(e, full)
                                 + e->e_nrcpts * WkRecipFact;
 
        /* date message originated */
                                 + e->e_nrcpts * WkRecipFact;
 
        /* date message originated */
-       p = hvalue("posted-date", e);
+       p = hvalue("posted-date", e->e_header);
        if (p == NULL)
        if (p == NULL)
-               p = hvalue("date", e);
+               p = hvalue("date", e->e_header);
        if (p != NULL)
                define('a', p, e);
 
        if (p != NULL)
                define('a', p, e);
 
@@ -479,7 +479,7 @@ eatheader(e, full)
                        if (bitset(H_FROM, hi->hi_flags) &&
                            (!bitset(H_RESENT, hi->hi_flags) ||
                             bitset(EF_RESENT, e->e_flags)) &&
                        if (bitset(H_FROM, hi->hi_flags) &&
                            (!bitset(H_RESENT, hi->hi_flags) ||
                             bitset(EF_RESENT, e->e_flags)) &&
-                           (p = hvalue(hi->hi_field, e)) != NULL)
+                           (p = hvalue(hi->hi_field, e->e_header)) != NULL)
                                break;
                }
                if (hi->hi_field != NULL)
                                break;
                }
                if (hi->hi_field != NULL)
@@ -887,6 +887,7 @@ crackaddr(addr)
 **
 **     Parameters:
 **             mci -- the connection information.
 **
 **     Parameters:
 **             mci -- the connection information.
+**             h -- the header to put.
 **             e -- envelope to use.
 **
 **     Returns:
 **             e -- envelope to use.
 **
 **     Returns:
@@ -903,19 +904,20 @@ crackaddr(addr)
 # define MAX(a,b) (((a)>(b))?(a):(b))
 #endif
 
 # define MAX(a,b) (((a)>(b))?(a):(b))
 #endif
 
-putheader(mci, e)
+putheader(mci, h, e)
        register MCI *mci;
        register MCI *mci;
+       register HDR *h;
        register ENVELOPE *e;
 {
        char buf[MAX(MAXLINE,BUFSIZ)];
        register ENVELOPE *e;
 {
        char buf[MAX(MAXLINE,BUFSIZ)];
-       register HDR *h;
        char obuf[MAXLINE];
 
        if (tTd(34, 1))
                printf("--- putheader, mailer = %s ---\n",
                        mci->mci_mailer->m_name);
 
        char obuf[MAXLINE];
 
        if (tTd(34, 1))
                printf("--- putheader, mailer = %s ---\n",
                        mci->mci_mailer->m_name);
 
-       for (h = e->e_header; h != NULL; h = h->h_link)
+       mci->mci_flags |= MCIF_INHEADER;
+       for (; h != NULL; h = h->h_link)
        {
                register char *p;
                extern bool bitintersect();
        {
                register char *p;
                extern bool bitintersect();
index 020f704..c25cd48 100644 (file)
@@ -13,7 +13,7 @@ static char copyright[] =
 #endif /* not lint */
 
 #ifndef lint
 #endif /* not lint */
 
 #ifndef lint
-static char sccsid[] = "@(#)main.c     8.62 (Berkeley) %G%";
+static char sccsid[] = "@(#)main.c     8.63 (Berkeley) %G%";
 #endif /* not lint */
 
 #define        _DEFINE
 #endif /* not lint */
 
 #define        _DEFINE
@@ -1092,7 +1092,7 @@ main(argc, argv, envp)
 
                /* collect body for UUCP return */
                if (OpMode != MD_VERIFY)
 
                /* collect body for UUCP return */
                if (OpMode != MD_VERIFY)
-                       collect(FALSE, FALSE, CurEnv);
+                       collect(InChannel, FALSE, FALSE, NULL, CurEnv);
                finis();
        }
 
                finis();
        }
 
@@ -1114,7 +1114,7 @@ main(argc, argv, envp)
        if (OpMode != MD_VERIFY || GrabTo)
        {
                CurEnv->e_flags |= EF_GLOBALERRS;
        if (OpMode != MD_VERIFY || GrabTo)
        {
                CurEnv->e_flags |= EF_GLOBALERRS;
-               collect(FALSE, FALSE, CurEnv);
+               collect(InChannel, FALSE, FALSE, NULL, CurEnv);
        }
        errno = 0;
 
        }
        errno = 0;
 
@@ -1459,7 +1459,7 @@ auth_warning(e, msg, va_alist)
                VA_START(msg);
                vsprintf(p, msg, ap);
                VA_END;
                VA_START(msg);
                vsprintf(p, msg, ap);
                VA_END;
-               addheader("X-Authentication-Warning", buf, e);
+               addheader("X-Authentication-Warning", buf, &e->e_header);
        }
 }
 \f/*
        }
 }
 \f/*
index b2e2b0b..5d7345a 100644 (file)
@@ -10,9 +10,9 @@
 
 #ifndef lint
 #ifdef QUEUE
 
 #ifndef lint
 #ifdef QUEUE
-static char sccsid[] = "@(#)queue.c    8.41 (Berkeley) %G% (with queueing)";
+static char sccsid[] = "@(#)queue.c    8.42 (Berkeley) %G% (with queueing)";
 #else
 #else
-static char sccsid[] = "@(#)queue.c    8.41 (Berkeley) %G% (without queueing)";
+static char sccsid[] = "@(#)queue.c    8.42 (Berkeley) %G% (without queueing)";
 #endif
 #endif /* not lint */
 
 #endif
 #endif /* not lint */
 
index 5a7221a..1bc9041 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)readcf.c   8.25 (Berkeley) %G%";
+static char sccsid[] = "@(#)readcf.c   8.26 (Berkeley) %G%";
 #endif /* not lint */
 
 # include "sendmail.h"
 #endif /* not lint */
 
 # include "sendmail.h"
@@ -1048,7 +1048,40 @@ setoption(opt, val, sticky)
                break;
 
          case '7':             /* force seven-bit input */
                break;
 
          case '7':             /* force seven-bit input */
-               SevenBit = atobool(val);
+               SevenBitInput = atobool(val);
+               break;
+
+         case '8':             /* handling of 8-bit input */
+               switch (*val)
+               {
+                 case 'r':             /* reject all 8-bit */
+                       MimeMode = 0;
+                       break;
+
+                 case 'c':             /* convert all 8-bit */
+                       MimeMode = MM_CVTMIME|MM_MIME8BIT;
+                       break;
+
+                 case 'm':             /* minimal encoding */
+                       MimeMode = MM_PASS8BIT;
+                       break;
+
+                 case 'p':             /* pass 8 bit, convert MIME */
+                       MimeMode = MM_PASS8BIT|MM_CVTMIME;
+                       break;
+
+                 case 's':             /* strict adherence */
+                       MimeMode = MM_CVTMIME;
+                       break;
+
+                 case 'e':             /* encode 8 bit if available */
+                       MimeMode = MM_MIME8BIT|MM_PASS8BIT|MM_CVTMIME;
+                       break;
+
+                 default:
+                       syserr("Unknown 8-bit mode %c", *val);
+                       exit(EX_USAGE);
+               }
                break;
 
          case 'A':             /* set default alias file */
                break;
 
          case 'A':             /* set default alias file */
index 64fc6d9..53976fa 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)savemail.c 8.32 (Berkeley) %G%";
+static char sccsid[] = "@(#)savemail.c 8.33 (Berkeley) %G%";
 #endif /* not lint */
 
 # include "sendmail.h"
 #endif /* not lint */
 
 # include "sendmail.h"
@@ -375,8 +375,7 @@ savemail(e)
                                mcibuf.mci_flags |= MCIF_7BIT;
 
                        putfromline(&mcibuf, e);
                                mcibuf.mci_flags |= MCIF_7BIT;
 
                        putfromline(&mcibuf, e);
-                       (*e->e_puthdr)(&mcibuf, e);
-                       putline("\n", &mcibuf);
+                       (*e->e_puthdr)(&mcibuf, e->e_header, e);
                        (*e->e_putbody)(&mcibuf, e, NULL);
                        putline("\n", &mcibuf);
                        (void) fflush(fp);
                        (*e->e_putbody)(&mcibuf, e, NULL);
                        putline("\n", &mcibuf);
                        (void) fflush(fp);
@@ -485,7 +484,7 @@ returntosender(msg, returnq, sendbody, e)
                        parseaddr(q->q_paddr, q, RF_COPYPARSE, '\0', NULL, e);
 
                if (q->q_alias == NULL)
                        parseaddr(q->q_paddr, q, RF_COPYPARSE, '\0', NULL, e);
 
                if (q->q_alias == NULL)
-                       addheader("To", q->q_paddr, ee);
+                       addheader("To", q->q_paddr, &ee->e_header);
        }
 
 # ifdef LOG
        }
 
 # ifdef LOG
@@ -502,13 +501,13 @@ returntosender(msg, returnq, sendbody, e)
        addheader("Subject", msg, ee);
        if (SendMIMEErrors)
        {
        addheader("Subject", msg, ee);
        if (SendMIMEErrors)
        {
-               addheader("MIME-Version", "1.0", ee);
+               addheader("MIME-Version", "1.0", &ee->e_header);
                (void) sprintf(buf, "%s.%ld/%s",
                        ee->e_id, curtime(), MyHostName);
                ee->e_msgboundary = newstr(buf);
                (void) sprintf(buf, "multipart/mixed; boundary=\"%s\"",
                                        ee->e_msgboundary);
                (void) sprintf(buf, "%s.%ld/%s",
                        ee->e_id, curtime(), MyHostName);
                ee->e_msgboundary = newstr(buf);
                (void) sprintf(buf, "multipart/mixed; boundary=\"%s\"",
                                        ee->e_msgboundary);
-               addheader("Content-Type", buf, ee);
+               addheader("Content-Type", buf, &ee->e_header);
        }
 
        /* fake up an address header for the from person */
        }
 
        /* fake up an address header for the from person */
@@ -551,6 +550,7 @@ returntosender(msg, returnq, sendbody, e)
 **     Parameters:
 **             mci -- the mailer connection information.
 **             e -- the envelope we are working in.
 **     Parameters:
 **             mci -- the mailer connection information.
 **             e -- the envelope we are working in.
+**             separator -- any possible MIME separator.
 **
 **     Returns:
 **             none
 **
 **     Returns:
 **             none
@@ -559,9 +559,10 @@ returntosender(msg, returnq, sendbody, e)
 **             Outputs the body of an error message.
 */
 
 **             Outputs the body of an error message.
 */
 
-errbody(mci, e)
+errbody(mci, e, separator)
        register MCI *mci;
        register ENVELOPE *e;
        register MCI *mci;
        register ENVELOPE *e;
+       char *separator;
 {
        register FILE *xfile;
        char *p;
 {
        register FILE *xfile;
        char *p;
@@ -569,6 +570,11 @@ errbody(mci, e)
        bool printheader;
        char buf[MAXLINE];
 
        bool printheader;
        char buf[MAXLINE];
 
+       if (bitset(MCIF_INHEADER, mci->mci_flags))
+       {
+               putline("", mci);
+               mci->mci_flags &= ~MCIF_INHEADER;
+       }
        if (e->e_parent == NULL)
        {
                syserr("errbody: null parent");
        if (e->e_parent == NULL)
        {
                syserr("errbody: null parent");
@@ -722,12 +728,14 @@ errbody(mci, e)
                        putline("Content-Type: message/rfc822", mci);
                        putline("", mci);
                }
                        putline("Content-Type: message/rfc822", mci);
                        putline("", mci);
                }
-               putheader(mci, e->e_parent);
-               putline("", mci);
+               putheader(mci, e->e_parent->e_header, e->e_parent);
                if (SendBody)
                        putbody(mci, e->e_parent, e->e_msgboundary);
                else
                if (SendBody)
                        putbody(mci, e->e_parent, e->e_msgboundary);
                else
+               {
+                       putline("", mci);
                        putline("   ----- Message body suppressed -----", mci);
                        putline("   ----- Message body suppressed -----", mci);
+               }
        }
        else
        {
        }
        else
        {
index ae3812e..bd29418 100644 (file)
@@ -5,7 +5,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)sendmail.h  8.45 (Berkeley) %G%
+ *     @(#)sendmail.h  8.46 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -15,7 +15,7 @@
 # ifdef _DEFINE
 # define EXTERN
 # ifndef lint
 # ifdef _DEFINE
 # define EXTERN
 # ifndef lint
-static char SmailSccsId[] =    "@(#)sendmail.h 8.45            %G%";
+static char SmailSccsId[] =    "@(#)sendmail.h 8.46            %G%";
 # endif
 # else /*  _DEFINE */
 # define EXTERN extern
 # endif
 # else /*  _DEFINE */
 # define EXTERN extern
@@ -299,6 +299,8 @@ MCI
 #define MCIF_8BITMIME  000100          /* BODY=8BITMIME supported */
 #define MCIF_7BIT      000200          /* strip this message to 7 bits */
 #define MCIF_MULTSTAT  000400          /* MAIL11V3: handles MULT status */
 #define MCIF_8BITMIME  000100          /* BODY=8BITMIME supported */
 #define MCIF_7BIT      000200          /* strip this message to 7 bits */
 #define MCIF_MULTSTAT  000400          /* MAIL11V3: handles MULT status */
+#define MCIF_INHEADER  001000          /* currently outputing header */
+#define MCIF_CVT8TO7   002000          /* convert from 8 to 7 bits */
 
 /* states */
 #define MCIS_CLOSED    0               /* no traffic on this connection */
 
 /* states */
 #define MCIS_CLOSED    0               /* no traffic on this connection */
@@ -340,7 +342,7 @@ ENVELOPE
        short           e_nsent;        /* number of sends since checkpoint */
        short           e_sendmode;     /* message send mode */
        short           e_errormode;    /* error return mode */
        short           e_nsent;        /* number of sends since checkpoint */
        short           e_sendmode;     /* message send mode */
        short           e_errormode;    /* error return mode */
-       int             (*e_puthdr)__P((MCI *, ENVELOPE *));
+       int             (*e_puthdr)__P((MCI *, HDR *, ENVELOPE *));
                                        /* function to put header of message */
        int             (*e_putbody)__P((MCI *, ENVELOPE *, char *));
                                        /* function to put body of message */
                                        /* function to put header of message */
        int             (*e_putbody)__P((MCI *, ENVELOPE *, char *));
                                        /* function to put body of message */
@@ -378,6 +380,7 @@ ENVELOPE
 #define EF_METOO       0x0004000       /* send to me too */
 #define EF_LOGSENDER   0x0008000       /* need to log the sender */
 #define EF_NORECEIPT   0x0010000       /* suppress all return-receipts */
 #define EF_METOO       0x0004000       /* send to me too */
 #define EF_LOGSENDER   0x0008000       /* need to log the sender */
 #define EF_NORECEIPT   0x0010000       /* suppress all return-receipts */
+#define EF_HAS8BIT     0x0020000       /* at least one 8-bit char in body */
 
 EXTERN ENVELOPE        *CurEnv;        /* envelope currently being processed */
 \f/*
 
 EXTERN ENVELOPE        *CurEnv;        /* envelope currently being processed */
 \f/*
@@ -642,7 +645,7 @@ typedef struct event        EVENT;
 
 EXTERN EVENT   *EventQueue;            /* head of event queue */
 \f/*
 
 EXTERN EVENT   *EventQueue;            /* head of event queue */
 \f/*
-**  Operation, send, and error modes
+**  Operation, send, error, and MIME modes
 **
 **     The operation mode describes the basic operation of sendmail.
 **     This can be set from the command line, and is "send mail" by
 **
 **     The operation mode describes the basic operation of sendmail.
 **     This can be set from the command line, and is "send mail" by
@@ -687,6 +690,15 @@ EXTERN char        OpMode;         /* operation mode, see below */
 #define EM_WRITE       'w'             /* write back errors */
 #define EM_BERKNET     'e'             /* special berknet processing */
 #define EM_QUIET       'q'             /* don't print messages (stat only) */
 #define EM_WRITE       'w'             /* write back errors */
 #define EM_BERKNET     'e'             /* special berknet processing */
 #define EM_QUIET       'q'             /* don't print messages (stat only) */
+
+
+/* MIME processing mode */
+EXTERN int     MimeMode;
+
+/* bit values for MimeMode */
+#define MM_CVTMIME     0x0001          /* convert 8 to 7 bit MIME */
+#define MM_PASS8BIT    0x0002          /* just send 8 bit data blind */
+#define MM_MIME8BIT    0x0004          /* convert 8-bit data to MIME */
 \f/*
 **  Additional definitions
 */
 \f/*
 **  Additional definitions
 */
@@ -786,7 +798,8 @@ EXTERN bool AutoRebuild;    /* auto-rebuild the alias database as needed */
 EXTERN bool    CheckAliases;   /* parse addresses during newaliases */
 EXTERN bool    NoAlias;        /* suppress aliasing */
 EXTERN bool    UseNameServer;  /* use internet domain name server */
 EXTERN bool    CheckAliases;   /* parse addresses during newaliases */
 EXTERN bool    NoAlias;        /* suppress aliasing */
 EXTERN bool    UseNameServer;  /* use internet domain name server */
-EXTERN bool    SevenBit;       /* force 7-bit data */
+EXTERN bool    SevenBitInput;  /* force 7-bit data on input */
+EXTERN bool    HasEightBits;   /* has at least one eight bit input byte */
 EXTERN time_t  SafeAlias;      /* interval to wait until @:@ in alias file */
 EXTERN FILE    *InChannel;     /* input connection */
 EXTERN FILE    *OutChannel;    /* output connection */
 EXTERN time_t  SafeAlias;      /* interval to wait until @:@ in alias file */
 EXTERN FILE    *InChannel;     /* input connection */
 EXTERN FILE    *OutChannel;    /* output connection */
index f527460..48d6ed4 100644 (file)
@@ -10,9 +10,9 @@
 
 #ifndef lint
 #ifdef SMTP
 
 #ifndef lint
 #ifdef SMTP
-static char sccsid[] = "@(#)srvrsmtp.c 8.42 (Berkeley) %G% (with SMTP)";
+static char sccsid[] = "@(#)srvrsmtp.c 8.43 (Berkeley) %G% (with SMTP)";
 #else
 #else
-static char sccsid[] = "@(#)srvrsmtp.c 8.42 (Berkeley) %G% (without SMTP)";
+static char sccsid[] = "@(#)srvrsmtp.c 8.43 (Berkeley) %G% (without SMTP)";
 #endif
 #endif /* not lint */
 
 #endif
 #endif /* not lint */
 
@@ -430,11 +430,11 @@ smtp(e)
                                        e->e_bodytype = newstr(vp);
                                        if (strcasecmp(vp, "8bitmime") == 0)
                                        {
                                        e->e_bodytype = newstr(vp);
                                        if (strcasecmp(vp, "8bitmime") == 0)
                                        {
-                                               SevenBit = FALSE;
+                                               SevenBitInput = FALSE;
                                        }
                                        else if (strcasecmp(vp, "7bit") == 0)
                                        {
                                        }
                                        else if (strcasecmp(vp, "7bit") == 0)
                                        {
-                                               SevenBit = TRUE;
+                                               SevenBitInput = TRUE;
                                        }
                                        else
                                        {
                                        }
                                        else
                                        {
@@ -546,7 +546,7 @@ smtp(e)
 
                        /* collect the text of the message */
                        SmtpPhase = "collect";
 
                        /* collect the text of the message */
                        SmtpPhase = "collect";
-                       collect(TRUE, doublequeue, e);
+                       collect(InChannel, TRUE, doublequeue, NULL, e);
                        if (Errors != 0)
                                goto abortmessage;
 
                        if (Errors != 0)
                                goto abortmessage;
 
index e0c4b31..662e953 100644 (file)
@@ -10,9 +10,9 @@
 
 #ifndef lint
 #ifdef SMTP
 
 #ifndef lint
 #ifdef SMTP
-static char sccsid[] = "@(#)usersmtp.c 8.20 (Berkeley) %G% (with SMTP)";
+static char sccsid[] = "@(#)usersmtp.c 8.21 (Berkeley) %G% (with SMTP)";
 #else
 #else
-static char sccsid[] = "@(#)usersmtp.c 8.20 (Berkeley) %G% (without SMTP)";
+static char sccsid[] = "@(#)usersmtp.c 8.21 (Berkeley) %G% (without SMTP)";
 #endif
 #endif /* not lint */
 
 #endif
 #endif /* not lint */
 
@@ -317,7 +317,8 @@ smtpmailfrom(m, mci, e)
                        strcat(optbuf, " BODY=");
                        strcat(optbuf, e->e_bodytype);
                }
                        strcat(optbuf, " BODY=");
                        strcat(optbuf, e->e_bodytype);
                }
-               else if (strcasecmp(e->e_bodytype, "7bit") != 0)
+               else if (!bitset(MM_CVTMIME, MimeMode) &&
+                        strcasecmp(e->e_bodytype, "7bit") != 0)
                {
                        /* cannot just send a 7-bit version */
                        usrerr("%s does not support 8BITMIME", mci->mci_host);
                {
                        /* cannot just send a 7-bit version */
                        usrerr("%s does not support 8BITMIME", mci->mci_host);
@@ -533,11 +534,25 @@ smtpdata(m, mci, e)
        timeout += e->e_nrcpts * 90;
        ev = setevent(timeout, datatimeout, 0);
 
        timeout += e->e_nrcpts * 90;
        ev = setevent(timeout, datatimeout, 0);
 
-       /* now output the actual message */
-       (*e->e_puthdr)(mci, e);
-       putline("\n", mci);
+       /*
+       **  Output the actual message.
+       */
+
+       if (!bitset(MCIF_8BITMIME, mci->mci_flags) &&
+           e->e_bodytype != NULL &&
+           strcasecmp(e->e_bodytype, "7bit") != 0)
+       {
+               /* must convert from 8bit MIME format to 7bit encoded */
+               mci->mci_flags |= MCIF_CVT8TO7;
+       }
+
+       (*e->e_puthdr)(mci, e->e_header, e);
        (*e->e_putbody)(mci, e, NULL);
 
        (*e->e_putbody)(mci, e, NULL);
 
+       /*
+       **  Cleanup after sending message.
+       */
+
        clrevent(ev);
 
        if (ferror(mci->mci_out))
        clrevent(ev);
 
        if (ferror(mci->mci_out))
index 07c15a4..ccb0c79 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)util.c     8.41 (Berkeley) %G%";
+static char sccsid[] = "@(#)util.c     8.42 (Berkeley) %G%";
 #endif /* not lint */
 
 # include "sendmail.h"
 #endif /* not lint */
 
 # include "sendmail.h"
@@ -945,9 +945,22 @@ sfgets(buf, siz, fp, timeout, during)
        }
        if (TrafficLogFile != NULL)
                fprintf(TrafficLogFile, "%05d <<< %s", getpid(), buf);
        }
        if (TrafficLogFile != NULL)
                fprintf(TrafficLogFile, "%05d <<< %s", getpid(), buf);
-       if (SevenBit)
+       if (SevenBitInput)
+       {
                for (p = buf; *p != '\0'; p++)
                        *p &= ~0200;
                for (p = buf; *p != '\0'; p++)
                        *p &= ~0200;
+       }
+       else if (!HasEightBits)
+       {
+               for (p = buf; *p != '\0'; p++)
+               {
+                       if (bitset(0200, *p))
+                       {
+                               HasEightBits = TRUE;
+                               break;
+                       }
+               }
+       }
        return (buf);
 }
 
        return (buf);
 }