mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-30 13:48:06 +00:00
postfix-1.1.11-20021013
This commit is contained in:
parent
16566b2c3d
commit
1f37e701d6
@ -7032,6 +7032,32 @@ Apologies for any names omitted.
|
||||
result is dynamically allocated. Victor Duchovni. File:
|
||||
smtpd/smtpd_check.c.
|
||||
|
||||
20020929
|
||||
|
||||
Updated MacOSX support scripts from Gerben Wierda. Files:
|
||||
auxiliary/MacOSX/*.
|
||||
|
||||
20021009
|
||||
|
||||
Bugfix: SIZE errors should be reported at MAIL FROM time,
|
||||
and should not be postponed (with smtpd_delay_reject = yes)
|
||||
until RCPT TO time. Reported by Jeroen Scheerder, Utrecht
|
||||
University. Files: smtpd/smtpd.c smtpd/smtpd_check.c.
|
||||
|
||||
20021013
|
||||
|
||||
When Postfix development started, Linux mail delivery
|
||||
software such as procmail did not use kernel locks, and
|
||||
Postfix picked one that seemed plausible, namely, flock().
|
||||
In the mean time, Linux mail delivery software seems to
|
||||
have standardized on fcntl() locks. File: util/sys_defs.h.
|
||||
|
||||
Feature: body_checks_size_limit parameter to specify how much
|
||||
of a message body segment (or attachment, if you prefer to
|
||||
use that term) is subjected to body_checks inspection.
|
||||
Default limit: 50 kbytes. Files: global/mime_state.c,
|
||||
cleanup/cleanup_message.c.
|
||||
|
||||
Open problems:
|
||||
|
||||
Low: smtpd should log queue ID with reject/warn/hold/discard
|
||||
|
@ -12,6 +12,27 @@ snapshot release). Patches change the patchlevel and the release
|
||||
date. Snapshots change only the release date, unless they include
|
||||
the same bugfixes as a patch release.
|
||||
|
||||
Incompatible changes with Postfix snapshot 1.1.11-20021013
|
||||
==========================================================
|
||||
|
||||
The default Linux kernel lock style for mailbox delivery is changed
|
||||
from flock() to fcntl(). This has no impact if your system uses
|
||||
procmail for local delivery, if you use maildir-style mailboxes,
|
||||
or when mailbox access software locks mailboxes with username.lock
|
||||
files (which is usually the case with non-maildir mailboxes).
|
||||
|
||||
Major changes with Postfix snapshot 1.1.11-20021013
|
||||
===================================================
|
||||
|
||||
The body_checks_max_size parameter limits the amount of text per
|
||||
message body segment (or attachment, if you prefer to use that
|
||||
term) that is subjected to body_checks inspection. The default
|
||||
limit is 50 kbytes. This speeds up the processing of mail with
|
||||
large attachments.
|
||||
|
||||
Updated MacOS X support by Gerben Wierda. See the auxiliary/MacOSX
|
||||
directory.
|
||||
|
||||
Incompatible changes with Postfix snapshot 1.1.11-20020923
|
||||
==========================================================
|
||||
|
||||
|
@ -3,15 +3,26 @@
|
||||
# Gerben Wierda, Oct 2001. Adapted from an existing example. I waive every
|
||||
# copyright on this and I also do not give any warranty.
|
||||
|
||||
# Updated Sepember 29, 2002
|
||||
# To work properly, the POSTFIX variable needs to be set to -YES-
|
||||
# in /etc/hostconfig
|
||||
|
||||
. /etc/rc.common
|
||||
|
||||
if [ "${POSTFIX:=-NO-}" = "-YES-" -a "${MAILSERVER:=-NO-}" = "-YES-" ]
|
||||
then
|
||||
ConsoleMessage "Cannot run concurrent postfix and sendmail"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
|
||||
##
|
||||
# Start mail server
|
||||
##
|
||||
|
||||
if [ "$1" == "start" ]
|
||||
then
|
||||
if [ "${MAILSERVER:=-NO-}" = "-YES-" ]
|
||||
if [ "${POSTFIX:=-NO-}" = "-YES-" ]
|
||||
then
|
||||
ConsoleMessage "Starting Postfix mail services"
|
||||
/usr/sbin/postfix start
|
||||
@ -22,7 +33,7 @@ then
|
||||
/usr/sbin/postfix stop
|
||||
elif [ "$1" == "restart" ]
|
||||
then
|
||||
if [ "${MAILSERVER:=-NO-}" = "-YES-" ]
|
||||
if [ "${POSTFIX:=-NO-}" = "-YES-" ]
|
||||
then
|
||||
ConsoleMessage "Reloading Postfix configuration"
|
||||
/usr/sbin/postfix reload
|
||||
|
@ -5,6 +5,9 @@ Let's start with the important warning:
|
||||
|
||||
DO NOT USE THE MULTIPLE USERS APPLICATION TO CREATE THE POSTFIX USER!
|
||||
|
||||
NOTE: As of 29 September 2002, these instructions and the scripts have changed
|
||||
to make the solution more robust for Apple updates.
|
||||
|
||||
Run the commands below in the order that they are presented
|
||||
|
||||
A. INSTALLING POSTFIX for the first time and selecting it as the active
|
||||
@ -12,52 +15,56 @@ A. INSTALLING POSTFIX for the first time and selecting it as the active
|
||||
|
||||
# All these commands are written to be run from this directory.
|
||||
|
||||
# This repairs the previous Oct 2001 setup if any
|
||||
sudo ./repair-oldsetup
|
||||
|
||||
# Prepare for reactivating sendmail
|
||||
sudo ./backup-sendmail-binaries
|
||||
|
||||
# this creates the necessary users & groups for proper operation
|
||||
# of postfix:
|
||||
sudo ./niscript
|
||||
|
||||
# Prepare for reactivating sendmail if you want to
|
||||
sudo ./backup-sendmail-binaries
|
||||
|
||||
# Install postfix:
|
||||
# When the script asks you for setgid (the default will be no) tell it
|
||||
# maildrop
|
||||
(cd ../..; sudo make install)
|
||||
|
||||
# Prepare for reactivating postfix if you want to
|
||||
# Prepare for reactivating postfix
|
||||
sudo ./backup-postfix-binaries
|
||||
|
||||
# edit /etc/postfix/main.cf to suit your requirements
|
||||
### add your own commands here ###
|
||||
|
||||
### add your own command here ###
|
||||
|
||||
# Install the startup item and move the existing sendmail startup item
|
||||
# out of the way
|
||||
# Activate postfix startup at boot time. Deactivates sendmail.
|
||||
sudo ./activate-postfix
|
||||
|
||||
# Restart your computer
|
||||
|
||||
# Test. Read INSTALL for a series of suggested tests.
|
||||
|
||||
B. RESTORING Sendmail as the MTA when Postfix is the active MTA
|
||||
B. DEACTIVATING POSTFIX
|
||||
|
||||
# Deactivate postfix startup at boot time
|
||||
sudo ./deactivate-postfix
|
||||
|
||||
C. RESTORING Sendmail as the MTA when Postfix is the active MTA
|
||||
|
||||
# This repairs the previous Oct 2001 setup if any
|
||||
sudo ./repair-oldsetup
|
||||
|
||||
# Deactivate postfix startup at boot time
|
||||
sudo ./deactivate-postfix
|
||||
|
||||
# Stop postfix
|
||||
# Restore the sendmail binaries
|
||||
# Restore the Sendmail startup item and move the Postfix startup item
|
||||
# out of the way
|
||||
sudo ./activate-sendmail
|
||||
|
||||
# Restart your computer
|
||||
|
||||
C. RESTORING postfix as the MTA when Sendmail is the active MTA
|
||||
D. RESTORING postfix as the MTA when Sendmail is the active MTA
|
||||
|
||||
# The first time you have to follow the steps of A.
|
||||
# NOTE: The first time you activate postfix you have to follow
|
||||
# the steps of A.
|
||||
|
||||
# Kill the running sendmail daemon if you know how
|
||||
# This repairs the previous Oct 2001 setup if any
|
||||
sudo ./repair-oldsetup
|
||||
|
||||
# Restore the postfix binaries
|
||||
# Restore the Postfix startup item and move the Sendmail startup item
|
||||
# out of the way
|
||||
sudo ./activate-postfix
|
||||
|
||||
# Restart your computer
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
. ./defines
|
||||
|
||||
# Activate binaries
|
||||
if [ ! -e ${POSTFIXBACKUPDIR}/sendmail ]
|
||||
then
|
||||
echo "Something is wrong: there is no existing postfix binary backup"
|
||||
@ -30,32 +31,13 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -e "${SSI}" ]
|
||||
then
|
||||
if [ ! -d "${SIDISABLEDDIR}" ]
|
||||
then
|
||||
mkdir -p "${SIDISABLEDDIR}"
|
||||
fi
|
||||
echo "Moving existing Sendmail StartupItem to ${SIDISABLEDDIR}..."
|
||||
if [ -e "${SSIDISABLED}" ]
|
||||
then
|
||||
echo "Something is wrong. A disabled Sendmail StartupItem already exists."
|
||||
DATETIME=`date +"%Y%b%e-%H%M%S"`
|
||||
echo "Moving Sendmail to Sendmail.${DATETIME}"
|
||||
mv "${SSI}" "${SSIDISABLED}.${DATETIME}"
|
||||
echo "You should have just one ${SSIDISABLED}"
|
||||
else
|
||||
mv "${SSI}" "${SSIDISABLED}"
|
||||
fi
|
||||
fi
|
||||
|
||||
. /etc/hostconfig
|
||||
|
||||
if [ "${MAILSERVER:=-NO-}" = "-YES-" ]
|
||||
then
|
||||
echo "Postfix will start on reboot"
|
||||
# De-activate sendmail in /etc/hostconfig
|
||||
/usr/bin/perl -pi -e 's/MAILSERVER=-YES-/MAILSERVER=-NO-/g' /etc/hostconfig
|
||||
# Activate postfix in /etc/hostconfig
|
||||
if /usr/bin/grep '^POSTFIX=-NO-' /etc/hostconfig >/dev/null 2>&1; then
|
||||
/usr/bin/perl -pi -e 's/POSTFIX=-NO-/POSTFIX=-YES-/g' /etc/hostconfig
|
||||
else
|
||||
echo "Note: Postfix needs MAILSERVER set to -YES- in /etc/hostconfig"
|
||||
echo "Postfix will NOT start on reboot"
|
||||
echo "POSTFIX=-YES-" >>/etc/hostconfig
|
||||
fi
|
||||
|
||||
/usr/sbin/postfix start
|
||||
|
@ -5,9 +5,12 @@
|
||||
|
||||
. ./defines
|
||||
|
||||
. ./deactivate-postfix
|
||||
|
||||
# Activate binaries
|
||||
if [ ! -e ${SENDMAILBACKUPDIR}/sendmail ]
|
||||
then
|
||||
echo "Something is wrong: there is no existing postfix binary backup"
|
||||
echo "Something is wrong: there is no existing sendmail binary backup"
|
||||
exit 1;
|
||||
else
|
||||
echo "Restoring sendmail versions of sendmail programs from backup..."
|
||||
@ -16,45 +19,6 @@ else
|
||||
(cd ${SENDMAILBACKUPDIR}; tar cf - mailq) | (cd /usr/bin; tar xf -)
|
||||
fi
|
||||
|
||||
if [ -e "${SSI}" ]
|
||||
then
|
||||
echo "Sendmail StartupItem already exists."
|
||||
else
|
||||
if [ -e "${SSIDISABLED}" ]
|
||||
then
|
||||
echo "Reinstating disabled Sendmail StartupItem..."
|
||||
mv "${SSIDISABLED}" "${SSI}"
|
||||
else
|
||||
echo "Something is wrong. I cannot find ${SSIDISABLED}"
|
||||
echo "Postfix will be uninstalled, Sendmail not reinstalled."
|
||||
fi
|
||||
fi
|
||||
# Activate sendmail in /etc/hostconfig
|
||||
/usr/bin/perl -pi -e 's/MAILSERVER=-NO-/MAILSERVER=-YES-/g' /etc/hostconfig
|
||||
|
||||
if [ -e "${PSI}" ]
|
||||
then
|
||||
if [ ! -d "${SIDISABLEDDIR}" ]
|
||||
then
|
||||
mkdir -p "${SIDISABLEDDIR}"
|
||||
fi
|
||||
echo "Moving existing Postfix StartupItem to ${SIDISABLEDDIR}..."
|
||||
if [ -e "${PSIDISABLED}" ]
|
||||
then
|
||||
echo "Something is wrong. A disabled Postfix StartupItem already exists."
|
||||
DATETIME=`date +"%Y%b%e-%H%M%S"`
|
||||
echo "Moving Postfix to Postfix.${DATETIME}"
|
||||
mv "${PSI}" "${PSIDISABLED}.${DATETIME}"
|
||||
echo "You should have just one ${PSIDISABLED}"
|
||||
else
|
||||
mv "${PSI}" "${PSIDISABLED}"
|
||||
fi
|
||||
fi
|
||||
|
||||
. /etc/hostconfig
|
||||
|
||||
if [ "${MAILSERVER:=-NO-}" = "-YES-" ]
|
||||
then
|
||||
echo "Sendmail will start on reboot"
|
||||
else
|
||||
echo "Note: Sendmail needs MAILSERVER set to -YES- in /etc/hostconfig"
|
||||
echo "Sendmail will NOT start on reboot"
|
||||
fi
|
||||
|
16
postfix/auxiliary/MacOSX/deactivate-postfix
Executable file
16
postfix/auxiliary/MacOSX/deactivate-postfix
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Written by Gerben Wierda, Sep 2002. I waive every copyright on this and
|
||||
# I also do not give any warranty.
|
||||
|
||||
. ./defines
|
||||
|
||||
if [ -e "${PSI}" ]
|
||||
then
|
||||
mv "${PSI}" "${PSIDISABLED}"
|
||||
fi
|
||||
|
||||
# De-activate postfix in /etc/hostconfig
|
||||
/usr/bin/perl -pi -e 's/POSTFIX=-YES-/POSTFIX=-NO-/g' /etc/hostconfig
|
||||
|
||||
/usr/sbin/postfix stop >/dev/null 2>&1
|
@ -3,13 +3,10 @@
|
||||
# Written by Gerben Wierda, Oct 2001. I waive every copyright on this and
|
||||
# I also do not give any warranty.
|
||||
|
||||
SIDIR="/System/Library/StartupItems"
|
||||
SIDISABLEDDIR="/System/Library/DisabledStartupItems"
|
||||
SIDIR="/Library/StartupItems"
|
||||
|
||||
PSI="${SIDIR}/Postfix"
|
||||
SSI="${SIDIR}/Sendmail"
|
||||
PSIDISABLED="${SIDISABLEDDIR}/Postfix"
|
||||
SSIDISABLED="${SIDISABLEDDIR}/Sendmail"
|
||||
PSIDISABLED="${PSI}.disabled"
|
||||
|
||||
POSTFIXBACKUPDIR=/usr/sbin/.postfixbackup
|
||||
SENDMAILBACKUPDIR=/usr/sbin/.sendmailbackup
|
||||
|
0
postfix/auxiliary/MacOSX/niscript
Normal file → Executable file
0
postfix/auxiliary/MacOSX/niscript
Normal file → Executable file
8
postfix/auxiliary/MacOSX/repair-oldsetup
Executable file
8
postfix/auxiliary/MacOSX/repair-oldsetup
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -d /System/Library/DisabledStartupItems/Sendmail ]
|
||||
then
|
||||
mv /System/Library/DisabledStartupItems/Sendmail /System/Library/StartupItems
|
||||
rmdir /System/Library/DisabledStartupItems/Sendmail
|
||||
rm -rf /System/Library/StartupItems/Postfix
|
||||
fi
|
@ -144,3 +144,12 @@ nested_header_checks = $header_checks
|
||||
# overrides the main.cf content_filter setting.
|
||||
#
|
||||
body_checks = regexp:/etc/postfix/body_checks
|
||||
|
||||
# The body_checks_max_size parameter controls how much text in a
|
||||
# message body segment (or attachment, if you prefer to use that
|
||||
# term) is subjected to body_checks inspection.
|
||||
#
|
||||
# By default, only the first 50 kbytes of a message body segment are
|
||||
# inspected with body_checks patterns.
|
||||
#
|
||||
body_checks_max_size = 51200
|
||||
|
@ -77,56 +77,60 @@ CLEANUP(8) CLEANUP(8)
|
||||
lines. These filters see physical lines one at a
|
||||
time, in chunks of at most line_length_limit bytes.
|
||||
|
||||
<b>body</b><i>_</i><b>checks</b><i>_</i><b>size</b><i>_</i><b>limit</b>
|
||||
The amount of content per message body segment that
|
||||
is subjected to <b>$body</b><i>_</i><b>checks</b> filtering.
|
||||
|
||||
<b>header</b><i>_</i><b>checks</b>
|
||||
|
||||
<b>mime</b><i>_</i><b>header</b><i>_</i><b>checks</b> (default: <b>$header</b><i>_</i><b>checks</b>)
|
||||
|
||||
<b>nested</b><i>_</i><b>header</b><i>_</i><b>checks</b> (default: <b>$header</b><i>_</i><b>checks</b>)
|
||||
Lookup tables with content filters for message
|
||||
header lines: respectively, these are applied to
|
||||
the primary message headers (not including MIME
|
||||
headers), to the MIME headers anywhere in the mes-
|
||||
sage, and to the initial headers of attached mes-
|
||||
sages. These filters see logical headers one at a
|
||||
Lookup tables with content filters for message
|
||||
header lines: respectively, these are applied to
|
||||
the primary message headers (not including MIME
|
||||
headers), to the MIME headers anywhere in the mes-
|
||||
sage, and to the initial headers of attached mes-
|
||||
sages. These filters see logical headers one at a
|
||||
time, including headers that span multiple lines.
|
||||
|
||||
<b>MIME</b> <b>Processing</b>
|
||||
<b>disable</b><i>_</i><b>mime</b><i>_</i><b>input</b><i>_</i><b>processing</b>
|
||||
While receiving, give no special treatment to <b>Con-</b>
|
||||
While receiving, give no special treatment to <b>Con-</b>
|
||||
<b>tent-Type:</b> message headers; all text after the ini-
|
||||
tial message headers is considered to be part of
|
||||
tial message headers is considered to be part of
|
||||
the message body.
|
||||
|
||||
<b>mime</b><i>_</i><b>boundary</b><i>_</i><b>length</b><i>_</i><b>limit</b>
|
||||
The amount of space that will be allocated for MIME
|
||||
multipart boundary strings. The MIME processor is
|
||||
multipart boundary strings. The MIME processor is
|
||||
unable to distinguish between boundary strings that
|
||||
do not differ in the first <b>$mime</b><i>_</i><b>bound-</b>
|
||||
<b>ary</b><i>_</i><b>length</b><i>_</i><b>limit</b> characters.
|
||||
|
||||
<b>mime</b><i>_</i><b>nesting</b><i>_</i><b>limit</b>
|
||||
The maximal nesting level of multipart mail that
|
||||
the MIME processor can handle. Refuse mail that is
|
||||
The maximal nesting level of multipart mail that
|
||||
the MIME processor can handle. Refuse mail that is
|
||||
nested deeper.
|
||||
|
||||
<b>strict</b><i>_</i><b>8bitmime</b>
|
||||
Turn on both <b>strict</b><i>_</i><b>7bit</b><i>_</i><b>headers</b> and <b>strict</b><i>_</i><b>8bit-</b>
|
||||
Turn on both <b>strict</b><i>_</i><b>7bit</b><i>_</i><b>headers</b> and <b>strict</b><i>_</i><b>8bit-</b>
|
||||
<b>mime</b><i>_</i><b>body</b>.
|
||||
|
||||
<b>strict</b><i>_</i><b>7bit</b><i>_</i><b>headers</b>
|
||||
Reject mail with 8-bit text in message headers.
|
||||
This blocks mail from poorly written applications.
|
||||
Reject mail with 8-bit text in message headers.
|
||||
This blocks mail from poorly written applications.
|
||||
|
||||
<b>strict</b><i>_</i><b>8bitmime</b><i>_</i><b>body</b>
|
||||
Reject mail with 8-bit text in content that claims
|
||||
to be 7-bit, or in content that has no explicit
|
||||
content encoding information. This blocks mail
|
||||
mail poorly written mail software. Unfortunately,
|
||||
this also breaks majordomo approval requests when
|
||||
the included request contains valid 8-bit MIME
|
||||
mail, and it breaks bounces from mailers that do
|
||||
not properly encapsulate 8-bit content (for exam-
|
||||
ple, bounces from qmail or from old versions of
|
||||
Reject mail with 8-bit text in content that claims
|
||||
to be 7-bit, or in content that has no explicit
|
||||
content encoding information. This blocks mail
|
||||
mail poorly written mail software. Unfortunately,
|
||||
this also breaks majordomo approval requests when
|
||||
the included request contains valid 8-bit MIME
|
||||
mail, and it breaks bounces from mailers that do
|
||||
not properly encapsulate 8-bit content (for exam-
|
||||
ple, bounces from qmail or from old versions of
|
||||
Postfix).
|
||||
|
||||
<b>strict</b><i>_</i><b>mime</b><i>_</i><b>domain</b><i>_</i><b>encoding</b>
|
||||
@ -136,7 +140,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
|
||||
<b>Miscellaneous</b>
|
||||
<b>always</b><i>_</i><b>bcc</b>
|
||||
Address to send a copy of each message that enters
|
||||
Address to send a copy of each message that enters
|
||||
the system.
|
||||
|
||||
<b>hopcount</b><i>_</i><b>limit</b>
|
||||
@ -149,8 +153,8 @@ CLEANUP(8) CLEANUP(8)
|
||||
|
||||
<b>Address</b> <b>transformations</b>
|
||||
<b>empty</b><i>_</i><b>address</b><i>_</i><b>recipient</b>
|
||||
The destination for undeliverable mail from <>.
|
||||
This substitution is done before all other address
|
||||
The destination for undeliverable mail from <>.
|
||||
This substitution is done before all other address
|
||||
rewriting.
|
||||
|
||||
<b>canonical</b><i>_</i><b>maps</b>
|
||||
@ -166,16 +170,16 @@ CLEANUP(8) CLEANUP(8)
|
||||
header sender addresses.
|
||||
|
||||
<b>masquerade</b><i>_</i><b>classes</b>
|
||||
List of address classes subject to masquerading:
|
||||
zero or more of <b>envelope</b><i>_</i><b>sender</b>, <b>envelope</b><i>_</i><b>recipi-</b>
|
||||
List of address classes subject to masquerading:
|
||||
zero or more of <b>envelope</b><i>_</i><b>sender</b>, <b>envelope</b><i>_</i><b>recipi-</b>
|
||||
<b>ent</b>, <b>header</b><i>_</i><b>sender</b>, <b>header</b><i>_</i><b>recipient</b>.
|
||||
|
||||
<b>masquerade</b><i>_</i><b>domains</b>
|
||||
List of domains that hide their subdomain struc-
|
||||
List of domains that hide their subdomain struc-
|
||||
ture.
|
||||
|
||||
<b>masquerade</b><i>_</i><b>exceptions</b>
|
||||
List of user names that are not subject to address
|
||||
List of user names that are not subject to address
|
||||
masquerading.
|
||||
|
||||
<b>virtual</b><i>_</i><b>maps</b>
|
||||
@ -184,7 +188,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
|
||||
<b>Resource</b> <b>controls</b>
|
||||
<b>duplicate</b><i>_</i><b>filter</b><i>_</i><b>limit</b>
|
||||
Limit the number of envelope recipients that are
|
||||
Limit the number of envelope recipients that are
|
||||
remembered.
|
||||
|
||||
<b>header</b><i>_</i><b>size</b><i>_</i><b>limit</b>
|
||||
@ -193,11 +197,11 @@ CLEANUP(8) CLEANUP(8)
|
||||
|
||||
<b>in</b><i>_</i><b>flow</b><i>_</i><b>delay</b>
|
||||
Amount of time to pause before accepting a message,
|
||||
when the message arrival rate exceeds the message
|
||||
when the message arrival rate exceeds the message
|
||||
delivery rate.
|
||||
|
||||
<b>extract</b><i>_</i><b>recipient</b><i>_</i><b>limit</b>
|
||||
Limit the amount of recipients extracted from mes-
|
||||
Limit the amount of recipients extracted from mes-
|
||||
sage headers.
|
||||
|
||||
<b>SEE</b> <b>ALSO</b>
|
||||
@ -212,7 +216,7 @@ CLEANUP(8) CLEANUP(8)
|
||||
/etc/postfix/virtual*, virtual mapping table
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<b>AUTHOR(S)</b>
|
||||
|
@ -81,6 +81,9 @@ a configuration change.
|
||||
Lookup tables with content filters for message body lines.
|
||||
These filters see physical lines one at a time, in chunks of
|
||||
at most line_length_limit bytes.
|
||||
.IP \fBbody_checks_size_limit\fP
|
||||
The amount of content per message body segment that is
|
||||
subjected to \fB$body_checks\fR filtering.
|
||||
.IP \fBheader_checks\fR
|
||||
.IP "\fBmime_header_checks\fR (default: \fB$header_checks\fR)"
|
||||
.IP "\fBnested_header_checks\fR (default: \fB$header_checks\fR)"
|
||||
|
@ -67,6 +67,9 @@
|
||||
/* Lookup tables with content filters for message body lines.
|
||||
/* These filters see physical lines one at a time, in chunks of
|
||||
/* at most line_length_limit bytes.
|
||||
/* .IP \fBbody_checks_size_limit\fP
|
||||
/* The amount of content per message body segment that is
|
||||
/* subjected to \fB$body_checks\fR filtering.
|
||||
/* .IP \fBheader_checks\fR
|
||||
/* .IP "\fBmime_header_checks\fR (default: \fB$header_checks\fR)"
|
||||
/* .IP "\fBnested_header_checks\fR (default: \fB$header_checks\fR)"
|
||||
|
@ -110,12 +110,14 @@ int var_extra_rcpt_limit; /* recipient extract limit */
|
||||
char *var_rcpt_witheld; /* recipients not disclosed */
|
||||
char *var_masq_classes; /* what to masquerade */
|
||||
int var_qattr_count_limit; /* named attribute limit */
|
||||
int var_body_check_len; /* when to stop body scan */
|
||||
|
||||
CONFIG_INT_TABLE cleanup_int_table[] = {
|
||||
VAR_HOPCOUNT_LIMIT, DEF_HOPCOUNT_LIMIT, &var_hopcount_limit, 1, 0,
|
||||
VAR_DUP_FILTER_LIMIT, DEF_DUP_FILTER_LIMIT, &var_dup_filter_limit, 0, 0,
|
||||
VAR_EXTRA_RCPT_LIMIT, DEF_EXTRA_RCPT_LIMIT, &var_extra_rcpt_limit, 0, 0,
|
||||
VAR_QATTR_COUNT_LIMIT, DEF_QATTR_COUNT_LIMIT, &var_qattr_count_limit, 1, 0,
|
||||
VAR_BODY_CHECK_LEN, DEF_BODY_CHECK_LEN, &var_body_check_len, 0, 0,
|
||||
0,
|
||||
};
|
||||
|
||||
|
@ -344,7 +344,8 @@ static int cleanup_act(CLEANUP_STATE *state, char *context, const char *buf,
|
||||
/* cleanup_header_callback - process one complete header line */
|
||||
|
||||
static void cleanup_header_callback(void *context, int header_class,
|
||||
HEADER_OPTS *hdr_opts, VSTRING *header_buf)
|
||||
HEADER_OPTS *hdr_opts, VSTRING *header_buf,
|
||||
off_t unused_offset)
|
||||
{
|
||||
CLEANUP_STATE *state = (CLEANUP_STATE *) context;
|
||||
const char *myname = "cleanup_header_callback";
|
||||
@ -581,7 +582,9 @@ static void cleanup_header_done_callback(void *context)
|
||||
|
||||
/* cleanup_body_callback - output one body record */
|
||||
|
||||
static void cleanup_body_callback(void *context, int type, const char *buf, int len)
|
||||
static void cleanup_body_callback(void *context, int type,
|
||||
const char *buf, int len,
|
||||
off_t offset)
|
||||
{
|
||||
CLEANUP_STATE *state = (CLEANUP_STATE *) context;
|
||||
|
||||
@ -591,7 +594,9 @@ static void cleanup_body_callback(void *context, int type, const char *buf, int
|
||||
* only in chunks of line_length_limit (2048) characters; it is easily
|
||||
* bypassed with encodings and other tricks.
|
||||
*/
|
||||
if ((state->flags & CLEANUP_FLAG_FILTER) && cleanup_body_checks) {
|
||||
if ((state->flags & CLEANUP_FLAG_FILTER)
|
||||
&& cleanup_body_checks
|
||||
&& (var_body_check_len == 0 || offset < var_body_check_len)) {
|
||||
const char *value;
|
||||
|
||||
if ((value = maps_find(cleanup_body_checks, buf, 0)) != 0) {
|
||||
|
@ -1004,6 +1004,10 @@ extern char *var_nesthdr_checks;
|
||||
#define DEF_BODY_CHECKS ""
|
||||
extern char *var_body_checks;
|
||||
|
||||
#define VAR_BODY_CHECK_LEN "body_checks_size_limit"
|
||||
#define DEF_BODY_CHECK_LEN (50*1024)
|
||||
extern int var_body_check_len;
|
||||
|
||||
/*
|
||||
* Bounce service: truncate bounce message that exceed $bounce_size_limit.
|
||||
*/
|
||||
|
@ -20,7 +20,7 @@
|
||||
* Patches change the patchlevel and the release date. Snapshots change the
|
||||
* release date only, unless they include the same bugfix as a patch release.
|
||||
*/
|
||||
#define MAIL_RELEASE_DATE "20020928"
|
||||
#define MAIL_RELEASE_DATE "20021013"
|
||||
|
||||
#define VAR_MAIL_VERSION "mail_version"
|
||||
#define DEF_MAIL_VERSION "1.1.11-" MAIL_RELEASE_DATE
|
||||
|
@ -1,9 +1,9 @@
|
||||
mime_state: warning: improper use of 8-bit data in message header: Header: f??bar
|
||||
MAIN Header: f€€bar
|
||||
MAIN 0 Header: f€€bar
|
||||
HEADER END
|
||||
BODY N
|
||||
BODY N 0
|
||||
mime_state: warning: improper use of 8-bit data in message body: b?dy
|
||||
BODY N b€dy
|
||||
BODY N 1 b€dy
|
||||
BODY END
|
||||
mime_state: warning: improper use of 8-bit data in message header
|
||||
mime_state: warning: improper use of 8-bit data in message body
|
||||
|
@ -1,93 +1,93 @@
|
||||
MAIN mime-version: 1.0
|
||||
MAIN 0 mime-version: 1.0
|
||||
mime_state: header_token: text / plain
|
||||
MAIN content-type: text/plain
|
||||
MAIN 25 content-type: text/plain
|
||||
mime_state: header_token: 8bit
|
||||
MAIN Content-Transfer-Encoding: quoted-printable
|
||||
MAIN 57 Content-Transfer-Encoding: quoted-printable
|
||||
HEADER END
|
||||
BODY N
|
||||
BODY N =20
|
||||
BODY N x=20
|
||||
BODY N xx=20
|
||||
BODY N xxx=20
|
||||
BODY N xxxx=20
|
||||
BODY N xxxxx=20
|
||||
BODY N xxxxxx=20
|
||||
BODY N xxxxxxx=20
|
||||
BODY N xxxxxxxx=20
|
||||
BODY N xxxxxxxxx=20
|
||||
BODY N xxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N =20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N x=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xxxx=20
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xxxxx=20
|
||||
BODY N 0
|
||||
BODY N 1 =20
|
||||
BODY N 5 x=20
|
||||
BODY N 10 xx=20
|
||||
BODY N 16 xxx=20
|
||||
BODY N 23 xxxx=20
|
||||
BODY N 31 xxxxx=20
|
||||
BODY N 40 xxxxxx=20
|
||||
BODY N 50 xxxxxxx=20
|
||||
BODY N 61 xxxxxxxx=20
|
||||
BODY N 73 xxxxxxxxx=20
|
||||
BODY N 86 xxxxxxxxxx=20
|
||||
BODY N 100 xxxxxxxxxxx=20
|
||||
BODY N 115 xxxxxxxxxxxx=20
|
||||
BODY N 131 xxxxxxxxxxxxx=20
|
||||
BODY N 148 xxxxxxxxxxxxxx=20
|
||||
BODY N 166 xxxxxxxxxxxxxxx=20
|
||||
BODY N 185 xxxxxxxxxxxxxxxx=20
|
||||
BODY N 205 xxxxxxxxxxxxxxxxx=20
|
||||
BODY N 226 xxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 248 xxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 271 xxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 295 xxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 320 xxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 346 xxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 373 xxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 401 xxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 430 xxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 460 xxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 491 xxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 523 xxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 556 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 590 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 625 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 661 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 698 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 736 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 775 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 815 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 856 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 898 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 941 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 985 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1030 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1076 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1123 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1171 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1220 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1270 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1321 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1373 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1426 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1480 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1535 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1591 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1648 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1706 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1765 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1825 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1886 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 1948 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2011 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2075 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2140 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2206 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2273 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2341 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2410 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2480 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2551 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2623 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2696 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2770 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2845 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=20
|
||||
BODY N 2921 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 2996 =20
|
||||
BODY N 3000 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3075 x=20
|
||||
BODY N 3080 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3155 xx=20
|
||||
BODY N 3161 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3236 xxx=20
|
||||
BODY N 3243 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3318 xxxx=20
|
||||
BODY N 3326 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3401 xxxxx=20
|
||||
BODY END
|
||||
|
@ -1,93 +1,93 @@
|
||||
MAIN mime-version: 1.0
|
||||
MAIN 0 mime-version: 1.0
|
||||
mime_state: header_token: text / plain
|
||||
MAIN content-type: text/plain
|
||||
MAIN 25 content-type: text/plain
|
||||
mime_state: header_token: 8bit
|
||||
MAIN Content-Transfer-Encoding: quoted-printable
|
||||
MAIN 57 Content-Transfer-Encoding: quoted-printable
|
||||
HEADER END
|
||||
BODY N
|
||||
BODY N =09
|
||||
BODY N x=09
|
||||
BODY N xx=09
|
||||
BODY N xxx=09
|
||||
BODY N xxxx=09
|
||||
BODY N xxxxx=09
|
||||
BODY N xxxxxx=09
|
||||
BODY N xxxxxxx=09
|
||||
BODY N xxxxxxxx=09
|
||||
BODY N xxxxxxxxx=09
|
||||
BODY N xxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N =09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N x=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xxxx=09
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xxxxx=09
|
||||
BODY N 0
|
||||
BODY N 1 =09
|
||||
BODY N 5 x=09
|
||||
BODY N 10 xx=09
|
||||
BODY N 16 xxx=09
|
||||
BODY N 23 xxxx=09
|
||||
BODY N 31 xxxxx=09
|
||||
BODY N 40 xxxxxx=09
|
||||
BODY N 50 xxxxxxx=09
|
||||
BODY N 61 xxxxxxxx=09
|
||||
BODY N 73 xxxxxxxxx=09
|
||||
BODY N 86 xxxxxxxxxx=09
|
||||
BODY N 100 xxxxxxxxxxx=09
|
||||
BODY N 115 xxxxxxxxxxxx=09
|
||||
BODY N 131 xxxxxxxxxxxxx=09
|
||||
BODY N 148 xxxxxxxxxxxxxx=09
|
||||
BODY N 166 xxxxxxxxxxxxxxx=09
|
||||
BODY N 185 xxxxxxxxxxxxxxxx=09
|
||||
BODY N 205 xxxxxxxxxxxxxxxxx=09
|
||||
BODY N 226 xxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 248 xxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 271 xxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 295 xxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 320 xxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 346 xxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 373 xxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 401 xxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 430 xxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 460 xxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 491 xxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 523 xxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 556 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 590 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 625 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 661 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 698 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 736 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 775 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 815 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 856 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 898 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 941 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 985 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1030 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1076 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1123 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1171 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1220 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1270 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1321 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1373 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1426 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1480 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1535 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1591 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1648 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1706 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1765 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1825 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1886 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 1948 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2011 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2075 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2140 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2206 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2273 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2341 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2410 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2480 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2551 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2623 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2696 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2770 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2845 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=09
|
||||
BODY N 2921 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 2996 =09
|
||||
BODY N 3000 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3075 x=09
|
||||
BODY N 3080 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3155 xx=09
|
||||
BODY N 3161 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3236 xxx=09
|
||||
BODY N 3243 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3318 xxxx=09
|
||||
BODY N 3326 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3401 xxxxx=09
|
||||
BODY END
|
||||
|
@ -1,93 +1,93 @@
|
||||
MAIN mime-version: 1.0
|
||||
MAIN 0 mime-version: 1.0
|
||||
mime_state: header_token: text / plain
|
||||
MAIN content-type: text/plain
|
||||
MAIN 25 content-type: text/plain
|
||||
mime_state: header_token: 8bit
|
||||
MAIN Content-Transfer-Encoding: quoted-printable
|
||||
MAIN 57 Content-Transfer-Encoding: quoted-printable
|
||||
HEADER END
|
||||
BODY N
|
||||
BODY N =01
|
||||
BODY N x=01
|
||||
BODY N xx=01
|
||||
BODY N xxx=01
|
||||
BODY N xxxx=01
|
||||
BODY N xxxxx=01
|
||||
BODY N xxxxxx=01
|
||||
BODY N xxxxxxx=01
|
||||
BODY N xxxxxxxx=01
|
||||
BODY N xxxxxxxxx=01
|
||||
BODY N xxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N =01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N x=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xxxx=01
|
||||
BODY N xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N xxxxx=01
|
||||
BODY N 0
|
||||
BODY N 1 =01
|
||||
BODY N 5 x=01
|
||||
BODY N 10 xx=01
|
||||
BODY N 16 xxx=01
|
||||
BODY N 23 xxxx=01
|
||||
BODY N 31 xxxxx=01
|
||||
BODY N 40 xxxxxx=01
|
||||
BODY N 50 xxxxxxx=01
|
||||
BODY N 61 xxxxxxxx=01
|
||||
BODY N 73 xxxxxxxxx=01
|
||||
BODY N 86 xxxxxxxxxx=01
|
||||
BODY N 100 xxxxxxxxxxx=01
|
||||
BODY N 115 xxxxxxxxxxxx=01
|
||||
BODY N 131 xxxxxxxxxxxxx=01
|
||||
BODY N 148 xxxxxxxxxxxxxx=01
|
||||
BODY N 166 xxxxxxxxxxxxxxx=01
|
||||
BODY N 185 xxxxxxxxxxxxxxxx=01
|
||||
BODY N 205 xxxxxxxxxxxxxxxxx=01
|
||||
BODY N 226 xxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 248 xxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 271 xxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 295 xxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 320 xxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 346 xxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 373 xxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 401 xxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 430 xxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 460 xxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 491 xxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 523 xxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 556 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 590 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 625 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 661 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 698 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 736 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 775 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 815 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 856 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 898 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 941 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 985 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1030 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1076 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1123 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1171 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1220 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1270 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1321 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1373 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1426 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1480 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1535 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1591 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1648 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1706 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1765 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1825 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1886 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 1948 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2011 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2075 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2140 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2206 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2273 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2341 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2410 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2480 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2551 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2623 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2696 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2770 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2845 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=01
|
||||
BODY N 2921 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 2996 =01
|
||||
BODY N 3000 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3075 x=01
|
||||
BODY N 3080 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3155 xx=01
|
||||
BODY N 3161 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3236 xxx=01
|
||||
BODY N 3243 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3318 xxxx=01
|
||||
BODY N 3326 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||||
BODY N 3401 xxxxx=01
|
||||
BODY END
|
||||
|
@ -1,7 +1,7 @@
|
||||
mime_state: header_token: message / rfc822
|
||||
MAIN content-type: message/rfc822
|
||||
MAIN 0 content-type: message/rfc822
|
||||
mime_state: header_token: base64
|
||||
MAIN content-transfer-encoding: base64
|
||||
MAIN 34 content-transfer-encoding: base64
|
||||
HEADER END
|
||||
mime_state: warning: invalid message/* or multipart/* encoding domain: base64
|
||||
BODY END
|
||||
|
@ -1,142 +1,142 @@
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MAIN content-type: multipart/mixed; boundary=foobar
|
||||
MAIN 0 content-type: multipart/mixed; boundary=foobar
|
||||
HEADER END
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: PUSH boundary foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
mime_state: header_token: multipart / mixed
|
||||
mime_state: header_token: boundary = foobar
|
||||
mime_state: warning: MIME nesting exceeds safety limit: content-type: multipart/mixed; boundary=foobar
|
||||
MULT content-type: multipart/mixed; boundary=foobar
|
||||
BODY N
|
||||
BODY N --foobar
|
||||
MULT 0 content-type: multipart/mixed; boundary=foobar
|
||||
BODY N 0
|
||||
BODY N 1 --foobar
|
||||
BODY END
|
||||
mime_state: warning: MIME nesting exceeds safety limit
|
||||
mime_state: POP boundary foobar
|
||||
|
@ -11,12 +11,14 @@
|
||||
/* err_print, context)
|
||||
/* int flags;
|
||||
/* void (*head_out)(void *ptr, int header_class,
|
||||
/* HEADER_OPTS *header_info, VSTRING *buf);
|
||||
/* HEADER_OPTS *header_info,
|
||||
/* VSTRING *buf, off_t offset);
|
||||
/* void (*head_end)(void *ptr);
|
||||
/* void (*body_out)(void *ptr, int rec_type,
|
||||
/* const char *buf, int len);
|
||||
/* const char *buf, int len,
|
||||
/* off_t offset);
|
||||
/* void (*body_end)(void *ptr);
|
||||
/* void (*err_print(void *ptr, int err_flag, const char *text)
|
||||
/* void (*err_print)(void *ptr, int err_flag, const char *text)
|
||||
/* void *context;
|
||||
/*
|
||||
/* int mime_state_update(state, rec_type, buf, len)
|
||||
@ -152,6 +154,9 @@
|
||||
/* the last message header in the first header block is processed.
|
||||
/* .IP len
|
||||
/* Length of non-VSTRING input buffer.
|
||||
/* .IP offset
|
||||
/* The offset in bytes from the start of the current block of message
|
||||
/* headers or body lines. Line boundaries are counted as one byte.
|
||||
/* .IP rec_type
|
||||
/* The input record type as defined in rec_type(3h). State is
|
||||
/* updated for text records (REC_TYPE_NORM or REC_TYPE_CONT).
|
||||
@ -274,6 +279,8 @@ struct MIME_STATE {
|
||||
HEADER_TOKEN token[MIME_MAX_TOKEN]; /* header token array */
|
||||
VSTRING *token_buffer; /* header parser scratch buffer */
|
||||
int err_flags; /* processing errors */
|
||||
off_t head_offset; /* offset in header block */
|
||||
off_t body_offset; /* offset in body block */
|
||||
|
||||
/*
|
||||
* Static members.
|
||||
@ -316,6 +323,18 @@ struct MIME_STATE {
|
||||
(ptr)->curr_stype = (stype); \
|
||||
(ptr)->curr_encoding = (encoding); \
|
||||
(ptr)->curr_domain = (domain); \
|
||||
if ((state) == MIME_STATE_BODY) \
|
||||
(ptr)->body_offset = 0; \
|
||||
else \
|
||||
(ptr)->head_offset = 0; \
|
||||
} while (0)
|
||||
|
||||
#define SET_CURR_STATE(ptr, state) do { \
|
||||
(ptr)->curr_state = (state); \
|
||||
if ((state) == MIME_STATE_BODY) \
|
||||
(ptr)->body_offset = 0; \
|
||||
else \
|
||||
(ptr)->head_offset = 0; \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
@ -364,6 +383,22 @@ static MIME_ENCODING mime_encoding_map[] = { /* RFC 2045 */
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Outputs and state changes are interleaved, so we must maintain separate
|
||||
* offsets for header and body segments.
|
||||
*/
|
||||
#define HEAD_OUT(ptr, info) do { \
|
||||
(ptr)->head_out((ptr)->app_context, (ptr)->curr_state, \
|
||||
(info), (ptr)->output_buffer, (ptr)->head_offset); \
|
||||
(ptr)->head_offset += (len) + 1; \
|
||||
} while(0)
|
||||
|
||||
#define BODY_OUT(ptr, rec_type, text, len) do { \
|
||||
(ptr)->body_out((ptr)->app_context, (rec_type), \
|
||||
(text), (len), (ptr)->body_offset); \
|
||||
(ptr)->body_offset += (len) + 1; \
|
||||
} while(0)
|
||||
|
||||
/* mime_state_push - push boundary onto stack */
|
||||
|
||||
static void mime_state_push(MIME_STATE *state, int def_ctype, int def_stype,
|
||||
@ -635,9 +670,9 @@ static void mime_state_downgrade(MIME_STATE *state, int rec_type,
|
||||
if (LEN(state->output_buffer) > 72) {
|
||||
VSTRING_ADDCH(state->output_buffer, '=');
|
||||
VSTRING_TERMINATE(state->output_buffer);
|
||||
state->body_out(state->app_context, REC_TYPE_NORM,
|
||||
STR(state->output_buffer),
|
||||
LEN(state->output_buffer));
|
||||
BODY_OUT(state, REC_TYPE_NORM,
|
||||
STR(state->output_buffer),
|
||||
LEN(state->output_buffer));
|
||||
VSTRING_RESET(state->output_buffer);
|
||||
}
|
||||
/* Append the next character. */
|
||||
@ -662,9 +697,9 @@ static void mime_state_downgrade(MIME_STATE *state, int rec_type,
|
||||
QP_ENCODE(state->output_buffer, ch);
|
||||
}
|
||||
VSTRING_TERMINATE(state->output_buffer);
|
||||
state->body_out(state->app_context, REC_TYPE_NORM,
|
||||
STR(state->output_buffer),
|
||||
LEN(state->output_buffer));
|
||||
BODY_OUT(state, REC_TYPE_NORM,
|
||||
STR(state->output_buffer),
|
||||
LEN(state->output_buffer));
|
||||
VSTRING_RESET(state->output_buffer);
|
||||
}
|
||||
}
|
||||
@ -770,8 +805,7 @@ int mime_state_update(MIME_STATE *state, int rec_type,
|
||||
|| header_info->type != HDR_CONTENT_TRANSFER_ENCODING
|
||||
|| (state->static_flags & MIME_OPT_DOWNGRADE) == 0
|
||||
|| state->curr_domain == MIME_ENC_7BIT)
|
||||
state->head_out(state->app_context, state->curr_state,
|
||||
header_info, state->output_buffer);
|
||||
HEAD_OUT(state, header_info);
|
||||
state->prev_rec_type = 0;
|
||||
VSTRING_RESET(state->output_buffer);
|
||||
}
|
||||
@ -821,8 +855,7 @@ int mime_state_update(MIME_STATE *state, int rec_type,
|
||||
cp = CU_CHAR_PTR("quoted-printable");
|
||||
vstring_sprintf(state->output_buffer,
|
||||
"Content-Transfer-Encoding: %s", cp);
|
||||
state->head_out(state->app_context, state->curr_state,
|
||||
0, state->output_buffer);
|
||||
HEAD_OUT(state, (HEADER_OPTS *) 0);
|
||||
VSTRING_RESET(state->output_buffer);
|
||||
}
|
||||
|
||||
@ -862,9 +895,13 @@ int mime_state_update(MIME_STATE *state, int rec_type,
|
||||
* agressive mode, examine headers of partial and external-body
|
||||
* messages. Otherwise, treat such headers as part of the "body". Set
|
||||
* the proper encoding information for the multipart prolog.
|
||||
*
|
||||
* XXX This changes state to MIME_STATE_NESTED and then outputs a body
|
||||
* line, so that the body offset is not properly reset.
|
||||
*/
|
||||
if (input_is_text) {
|
||||
if (*text == 0) {
|
||||
state->body_offset = 0; /* XXX */
|
||||
if (state->curr_ctype == MIME_CTYPE_MESSAGE) {
|
||||
if (state->curr_stype == MIME_STYPE_RFC822
|
||||
|| (state->static_flags & MIME_OPT_RECURSE_ALL_MESSAGE))
|
||||
@ -872,13 +909,13 @@ int mime_state_update(MIME_STATE *state, int rec_type,
|
||||
MIME_CTYPE_TEXT, MIME_STYPE_PLAIN,
|
||||
MIME_ENC_7BIT, MIME_ENC_7BIT);
|
||||
else
|
||||
state->curr_state = MIME_STATE_BODY;
|
||||
SET_CURR_STATE(state, MIME_STATE_BODY);
|
||||
} else if (state->curr_ctype == MIME_CTYPE_MULTIPART) {
|
||||
SET_MIME_STATE(state, MIME_STATE_BODY,
|
||||
MIME_CTYPE_OTHER, MIME_STYPE_OTHER,
|
||||
MIME_ENC_7BIT, MIME_ENC_7BIT);
|
||||
} else {
|
||||
state->curr_state = MIME_STATE_BODY;
|
||||
SET_CURR_STATE(state, MIME_STATE_BODY);
|
||||
}
|
||||
}
|
||||
|
||||
@ -887,8 +924,8 @@ int mime_state_update(MIME_STATE *state, int rec_type,
|
||||
* body state, leaving all other state alone.
|
||||
*/
|
||||
else {
|
||||
state->body_out(state->app_context, REC_TYPE_NORM, "", 0);
|
||||
state->curr_state = MIME_STATE_BODY;
|
||||
SET_CURR_STATE(state, MIME_STATE_BODY);
|
||||
BODY_OUT(state, REC_TYPE_NORM, "", 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -896,7 +933,7 @@ int mime_state_update(MIME_STATE *state, int rec_type,
|
||||
* This input is not text. Go to body state, unconditionally.
|
||||
*/
|
||||
else {
|
||||
state->curr_state = MIME_STATE_BODY;
|
||||
SET_CURR_STATE(state, MIME_STATE_BODY);
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
|
||||
@ -957,7 +994,7 @@ int mime_state_update(MIME_STATE *state, int rec_type,
|
||||
&& state->curr_domain != MIME_ENC_7BIT)
|
||||
mime_state_downgrade(state, rec_type, text, len);
|
||||
else
|
||||
state->body_out(state->app_context, rec_type, text, len);
|
||||
BODY_OUT(state, rec_type, text, len);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1013,15 +1050,15 @@ const char *mime_state_error(int error_code)
|
||||
#define REC_LEN 1024
|
||||
|
||||
static void head_out(void *context, int class, HEADER_OPTS *unused_info,
|
||||
VSTRING *buf)
|
||||
VSTRING *buf, off_t offset)
|
||||
{
|
||||
VSTREAM *stream = (VSTREAM *) context;
|
||||
|
||||
vstream_fprintf(stream, "%s\t%s\n",
|
||||
vstream_fprintf(stream, "%s %ld\t%s\n",
|
||||
class == MIME_HDR_PRIMARY ? "MAIN" :
|
||||
class == MIME_HDR_MULTIPART ? "MULT" :
|
||||
class == MIME_HDR_NESTED ? "NEST" :
|
||||
"ERROR", STR(buf));
|
||||
"ERROR", (long) offset, STR(buf));
|
||||
}
|
||||
|
||||
static void head_end(void *context)
|
||||
@ -1031,11 +1068,12 @@ static void head_end(void *context)
|
||||
vstream_fprintf(stream, "HEADER END\n");
|
||||
}
|
||||
|
||||
static void body_out(void *context, int rec_type, const char *buf, int len)
|
||||
static void body_out(void *context, int rec_type, const char *buf, int len,
|
||||
off_t offset)
|
||||
{
|
||||
VSTREAM *stream = (VSTREAM *) context;
|
||||
|
||||
vstream_fprintf(stream, "BODY %c\t", rec_type);
|
||||
vstream_fprintf(stream, "BODY %c %ld\t", rec_type, (long) offset);
|
||||
vstream_fwrite(stream, buf, len);
|
||||
if (rec_type == REC_TYPE_NORM)
|
||||
VSTREAM_PUTC('\n', stream);
|
||||
|
@ -25,8 +25,8 @@
|
||||
* External interface. All MIME_STATE structure members are private.
|
||||
*/
|
||||
typedef struct MIME_STATE MIME_STATE;
|
||||
typedef void (*MIME_STATE_HEAD_OUT) (void *, int, HEADER_OPTS *, VSTRING *);
|
||||
typedef void (*MIME_STATE_BODY_OUT) (void *, int, const char *, int);
|
||||
typedef void (*MIME_STATE_HEAD_OUT) (void *, int, HEADER_OPTS *, VSTRING *, off_t);
|
||||
typedef void (*MIME_STATE_BODY_OUT) (void *, int, const char *, int, off_t);
|
||||
typedef void (*MIME_STATE_ANY_END) (void *);
|
||||
typedef void (*MIME_STATE_ERR_PRINT) (void *, int, const char *);
|
||||
|
||||
|
@ -1,52 +1,52 @@
|
||||
MAIN subject: primary subject
|
||||
MAIN 0 subject: primary subject
|
||||
mime_state: header_token: multipart / mumble
|
||||
mime_state: header_token: boundary = abcd ef
|
||||
mime_state: PUSH boundary abcd ef
|
||||
MAIN content-type: multipart/(co\m\)ment)mumble mumble; boundary = "ab\cd
|
||||
MAIN 71 content-type: multipart/(co\m\)ment)mumble mumble; boundary = "ab\cd
|
||||
ef" mumble
|
||||
HEADER END
|
||||
BODY N
|
||||
BODY N abcdef prolog
|
||||
BODY N
|
||||
BODY N --abcd ef
|
||||
BODY N 0
|
||||
BODY N 1 abcdef prolog
|
||||
BODY N 15
|
||||
BODY N 16 --abcd ef
|
||||
mime_state: header_token: message / rfc822
|
||||
MULT content-type: message/rfc822; mumble
|
||||
BODY N
|
||||
NEST subject: nested subject
|
||||
MULT 0 content-type: message/rfc822; mumble
|
||||
BODY N 0
|
||||
NEST 0 subject: nested subject
|
||||
mime_state: header_token: multipart / mumble
|
||||
mime_state: header_token: boundary = pqrs
|
||||
mime_state: PUSH boundary pqrs
|
||||
NEST content-type: multipart/mumble; boundary(comment)="pqrs"
|
||||
NEST 57 content-type: multipart/mumble; boundary(comment)="pqrs"
|
||||
mime_state: header_token: base64
|
||||
NEST content-transfer-encoding: base64
|
||||
NEST 91 content-transfer-encoding: base64
|
||||
mime_state: warning: invalid message/* or multipart/* encoding domain: base64
|
||||
BODY N
|
||||
BODY N pqrs prolog
|
||||
BODY N
|
||||
BODY N --pqrs
|
||||
MULT header: pqrs part 01
|
||||
BODY N
|
||||
BODY N body pqrs part 01
|
||||
BODY N
|
||||
BODY N --pqrs
|
||||
MULT header: pqrs part 02
|
||||
BODY N
|
||||
BODY N body pqrs part 02
|
||||
BODY N
|
||||
BODY N --bogus-boundary
|
||||
BODY N header: wietse
|
||||
BODY N
|
||||
BODY N body asdasads
|
||||
BODY N
|
||||
BODY N 0
|
||||
BODY N 1 pqrs prolog
|
||||
BODY N 13
|
||||
BODY N 14 --pqrs
|
||||
MULT 0 header: pqrs part 01
|
||||
BODY N 0
|
||||
BODY N 1 body pqrs part 01
|
||||
BODY N 19
|
||||
BODY N 20 --pqrs
|
||||
MULT 0 header: pqrs part 02
|
||||
BODY N 0
|
||||
BODY N 1 body pqrs part 02
|
||||
BODY N 19
|
||||
BODY N 20 --bogus-boundary
|
||||
BODY N 37 header: wietse
|
||||
BODY N 52
|
||||
BODY N 53 body asdasads
|
||||
BODY N 67
|
||||
mime_state: POP boundary pqrs
|
||||
BODY N --abcd ef
|
||||
MULT header: abcdef part 02
|
||||
BODY N
|
||||
BODY N body abcdef part 02
|
||||
BODY N
|
||||
BODY N 68 --abcd ef
|
||||
MULT 0 header: abcdef part 02
|
||||
BODY N 0
|
||||
BODY N 1 body abcdef part 02
|
||||
BODY N 21
|
||||
mime_state: POP boundary abcd ef
|
||||
BODY N --abcd ef--
|
||||
BODY N
|
||||
BODY N epilog
|
||||
BODY N 0 --abcd ef--
|
||||
BODY N 12
|
||||
BODY N 13 epilog
|
||||
BODY END
|
||||
mime_state: warning: improper message/* or multipart/* encoding domain
|
||||
|
@ -1,5 +1,5 @@
|
||||
mime_state: warning: message header length exceeds safety limit: Header: ??garbage garbage garbage garbage garbage garbage garbage garbage garbage ??garbage garbage
|
||||
MAIN Header:
|
||||
MAIN 0 Header:
|
||||
garbage garbage garbage garbage garbage garbage garbage garbage garbage
|
||||
garbage garbage garbage garbage garbage garbage garbage garbage garbage
|
||||
garbage garbage garbage garbage garbage garbage garbage garbage garbage
|
||||
|
@ -288,7 +288,8 @@ int smtp_helo(SMTP_STATE *state)
|
||||
/* smtp_text_out - output one header/body record */
|
||||
|
||||
static void smtp_text_out(void *context, int rec_type,
|
||||
const char *text, int len)
|
||||
const char *text, int len,
|
||||
off_t unused_offset)
|
||||
{
|
||||
SMTP_STATE *state = (SMTP_STATE *) context;
|
||||
SMTP_SESSION *session = state->session;
|
||||
@ -333,7 +334,8 @@ static void smtp_text_out(void *context, int rec_type,
|
||||
/* smtp_header_out - output one message header */
|
||||
|
||||
static void smtp_header_out(void *context, int unused_header_class,
|
||||
HEADER_OPTS *unused_info, VSTRING *buf)
|
||||
HEADER_OPTS *unused_info, VSTRING *buf,
|
||||
off_t offset)
|
||||
{
|
||||
char *start = vstring_str(buf);
|
||||
char *line;
|
||||
@ -342,7 +344,7 @@ static void smtp_header_out(void *context, int unused_header_class,
|
||||
for (line = start; line; line = next_line) {
|
||||
next_line = split_at(line, '\n');
|
||||
smtp_text_out(context, REC_TYPE_NORM, line, next_line ?
|
||||
next_line - line - 1 : strlen(line));
|
||||
next_line - line - 1 : strlen(line), offset);
|
||||
}
|
||||
}
|
||||
|
||||
@ -799,7 +801,8 @@ int smtp_xfer(SMTP_STATE *state)
|
||||
if (downgrading == 0) {
|
||||
smtp_text_out((void *) state, rec_type,
|
||||
vstring_str(state->scratch),
|
||||
VSTRING_LEN(state->scratch));
|
||||
VSTRING_LEN(state->scratch),
|
||||
(off_t) 0);
|
||||
} else {
|
||||
mime_errs =
|
||||
mime_state_update(state->mime_state, rec_type,
|
||||
|
@ -781,8 +781,7 @@ static int mail_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *argv)
|
||||
smtpd_chat_reply(state, "%s", err);
|
||||
return (-1);
|
||||
}
|
||||
if ((SMTPD_STAND_ALONE(state) || var_smtpd_delay_reject == 0)
|
||||
&& (err = smtpd_check_size(state, state->msg_size)) != 0) {
|
||||
if ((err = smtpd_check_size(state, state->msg_size)) != 0) {
|
||||
smtpd_chat_reply(state, "%s", err);
|
||||
return (-1);
|
||||
}
|
||||
|
@ -2983,8 +2983,7 @@ char *smtpd_check_rcpt(SMTPD_STATE *state, char *recipient)
|
||||
if (var_smtpd_delay_reject)
|
||||
if ((err = smtpd_check_client(state)) != 0
|
||||
|| (err = smtpd_check_helo(state, state->helo_name)) != 0
|
||||
|| (err = smtpd_check_mail(state, state->sender)) != 0
|
||||
|| (err = smtpd_check_size(state, state->msg_size)) != 0)
|
||||
|| (err = smtpd_check_mail(state, state->sender)) != 0)
|
||||
SMTPD_CHECK_RCPT_RETURN(err);
|
||||
|
||||
/*
|
||||
@ -3165,6 +3164,7 @@ char *smtpd_check_size(SMTPD_STATE *state, off_t size)
|
||||
/*
|
||||
* Return here in case of serious trouble.
|
||||
*/
|
||||
SMTPD_CHECK_RESET();
|
||||
if ((status = setjmp(smtpd_check_buf)) != 0)
|
||||
return (status == SMTPD_CHECK_REJECT ? STR(error_text) : 0);
|
||||
|
||||
|
@ -484,7 +484,7 @@ extern int initgroups(const char *, int);
|
||||
#define HAS_FLOCK_LOCK
|
||||
#define HAS_FCNTL_LOCK
|
||||
#define INTERNAL_LOCK MYFLOCK_STYLE_FLOCK
|
||||
#define DEF_MAILBOX_LOCK "flock, dotlock"
|
||||
#define DEF_MAILBOX_LOCK "fcntl, dotlock" /* RedHat >= 4.x */
|
||||
#define HAS_FSYNC
|
||||
#define HAS_DB
|
||||
#define DEF_DB_TYPE "hash"
|
||||
@ -512,7 +512,7 @@ extern int initgroups(const char *, int);
|
||||
#define HAS_FLOCK_LOCK
|
||||
#define HAS_FCNTL_LOCK
|
||||
#define INTERNAL_LOCK MYFLOCK_STYLE_FLOCK
|
||||
#define DEF_MAILBOX_LOCK "flock, dotlock" /* unverified */
|
||||
#define DEF_MAILBOX_LOCK "dotlock" /* verified RedHat 3.03 */
|
||||
#define HAS_FSYNC
|
||||
#define HAS_DB
|
||||
#define DEF_DB_TYPE "hash"
|
||||
|
Loading…
x
Reference in New Issue
Block a user