Re: [Evolution] Corrupted mail send to too many correspondant



On Tue, 2004-07-06 at 19:04, Olivier DUGEON wrote:
- Is there something in the RFC which tell that the "To:" or "Cc:"
field couldn't be larger than 1024 char. ?

The RFC-821 specifies:

            text line

               The maximum total length of a text line including the
               <CRLF> is 1000 characters (but not counting the leading
               dot duplicated for transparency).

            recipients buffer

               The maximum total number of recipients that must be
               buffered is 100 recipients.

These numbers are minimum maximums, i.e., every mail handling agent must
be able to handle commands and messages complying to these limits, but
implementors are recommended to allow for more.

The RFC-822 specifies:

3.1.1.  LONG HEADER FIELDS

        Each header field can be viewed as a single, logical  line  of
        ASCII  characters,  comprising  a field-name and a field-body.
        For convenience, the field-body  portion  of  this  conceptual
        entity  can be split into a multiple-line representation; this
        is called "folding".  The general rule is that wherever  there
        may  be  linear-white-space  (NOT  simply  LWSP-chars), a CRLF
        immediately followed by AT LEAST one LWSP-char may instead  be
        inserted. 

(in this text, "LWSP-chars" mean spaces and (horizontal-)tabs.
"linear-white-space" means any sequence of CRLF, space, and tab
characters where each CRLF is immediately followed by a space or tab.)

It also specifies:

3.4.8.  FOLDING LONG HEADER FIELDS

        Each header field may be represented on exactly one line  con-
        sisting  of the name of the field and its body, and terminated
        by a CRLF; this is what the parser sees.  For readability, the
        field-body  portion of long header fields may be "folded" onto
        multiple lines of the actual field.  "Long" is commonly inter-
        preted  to  mean greater than 65 or 72 characters.  The former
        length serves as a limit, when the message is to be viewed  on
        most  simple terminals which use simple display software; how-
        ever, the limit is not imposed by this standard.

The newer RFC-2822 says:

2.1.1. Line Length Limits

   There are two limits that this standard places on the number of
   characters in a line. Each line of characters MUST be no more than
   998 characters, and SHOULD be no more than 78 characters, excluding
   the CRLF.


I do not know if Evolution does this right. I would be surprised,
though, if it does not. 

When parsing addresses, implementors likely want to unfold long headers
before identifying the individual addresses, as it is legal to fold a
header in the middle of an address. Quite likely some implementors have
chosen to allocate a single large buffer into which each header is
copied as it is unfolded, and then the size of the buffer becomes a hard
limit on the size of the _unfolded_ header.

Given the existence of such agents, perhaps Evolution should have a
mechanism to send several independent messages when the number of
recipients is large enough. As shown above, such a mechanism is needed
anyway if the number of recipients is above 100.

Regards,
Enrique





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]