Opened 3 years ago

Closed 3 years ago

#18861 closed Bug (fixed)

The test email backend (locmem) should perform more validation of messages

Reported by: brutasse Owned by: nobody
Component: Core (Mail) Version: master
Severity: Normal Keywords:
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no


Currently the locmem email backend only stores EmailMessage instances on mail.outbox, and does not perform as much validation as other backends.

In particular, calling .message() on an EmailMessage instance creates a SafeMIMEText object which forbids multiline headers. All email backends call .message() except for the locmem backend. This is a opportunity for deployment surprises where sending an email would work during the tests but not in production if the subject is constructed using a template that has an EOL marker at the end of the file.

The attached patch naively calls .message() on each outgoing message to trigger this validation. This should be backwards-compatible since that error would be raised anyways when sending emails with a proper backend.

An alternative solution to this issue (email subjects ending with a newline) could be to strip all headers but this is a more intrusive change.

Attachments (2)

18861.patch (1.4 KB) - added by brutasse 3 years ago.
18861-2.diff (1.3 KB) - added by claudep 3 years ago.
Move test in LocmemBackendTests

Download all attachments as: .zip

Change History (6)

Changed 3 years ago by brutasse

comment:1 Changed 3 years ago by brutasse

  • Has patch set
  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

comment:2 Changed 3 years ago by aaugustin

  • Triage Stage changed from Unreviewed to Accepted

Changed 3 years ago by claudep

Move test in LocmemBackendTests

comment:3 Changed 3 years ago by claudep

  • Triage Stage changed from Accepted to Ready for checkin

comment:4 Changed 3 years ago by Claude Paroz <claude@…>

  • Resolution set to fixed
  • Status changed from new to closed

In 8599f64e54adfb32ee6550ed7a6ec9944034d978:

Fixed #18861 -- Triggered message validation with locmem email backend

Thanks Bruno Renié for the report and the initial patch.

Note: See TracTickets for help on using tickets.
Back to Top