Modify

Opened 7 years ago

Closed 7 years ago

Last modified 6 years ago

#6171 closed defect (fixed)

[Patch] ''Content-Transfer-Encoding'' header not allowed in the main mime container

Reported by: Thomas Moschny Owned by: Robert Corsaro
Priority: normal Component: AnnouncerPlugin
Severity: normal Keywords:
Cc: Thomas Moschny Trac Release: 0.11

Description

(At least the) ticket notification mails sent by the plugin contain in the main header the fields:

Content-Type: multipart/related; charset="utf-8"; boundary="..."
Content-Transfer-Encoding: base64

According to RFC 1521 (5. The Content-Transfer-Encoding Header Field) that is invalid (and may confuse certain email clients, hence the ticket):

"Certain Content-Transfer-Encoding values may only be used on certain Content-Types. In particular, it is expressly forbidden to use any encodings other than "7bit", "8bit", or "binary" with any Content- Type that recursively includes other Content-Type fields, notably the "multipart" and "message" Content-Types. All encodings that are desired for bodies of type multipart or message must be done at the innermost level, by encoding the actual body that needs to be encoded."

To fix the problem, the "Content-Transfer-Encoding:" field could simply be removed from the main header of the messages. This is valid and the standard value "7bit" will be assumed.

Attachments (0)

Change History (5)

comment:1 Changed 7 years ago by Robert Corsaro

Resolution: fixed
Status: newclosed

(In [7137]) Remove Content-Transfer-Encoding from main mime container fixes #6171

comment:2 Changed 7 years ago by Thomas Moschny

Resolution: fixed
Status: closedreopened

In 1.0_a1 (r8410) the problem is there again.

comment:3 Changed 7 years ago by Thomas Moschny

Cc: Thomas Moschny added; anonymous removed
Summary: ''Content-Transfer-Encoding'' header not allowed in the main mime container[Patch] ''Content-Transfer-Encoding'' header not allowed in the main mime container

Here's the trivial patch:

  • announcerplugin/distributors/email_distributor.py

    diff --git a/announcerplugin/distributors/email_distributor.py b/announcerplugin/distributors/email_distributor.py
    index 6df30a6..d322e94 100644
    a b class EmailDistributor(Component): 
    313313        else:
    314314            alternate_output = None
    315315        rootMessage = MIMEMultipart("related")
    316         rootMessage.set_charset(self._charset)
    317316        proj_name = self.env.project_name
    318317        trac_version = get_pkginfo(trac.core).get('version', trac.__version__)
    319318        announcer_version = get_pkginfo(announcerplugin).get('version',

comment:4 Changed 7 years ago by Robert Corsaro

Resolution: fixed
Status: reopenedclosed

(In [8862]) Remove invalid content-transfer-encoding

Fixes #6171 Thanks thomas.moschny@…!

comment:5 Changed 6 years ago by Thomas Moschny

Would you mind applying that tiny patch also to the 0.11 branch?

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Robert Corsaro.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.