Skip to content

[2.1 & 3.0]: Email 7-bit format is not checking for 1000 byte limits #8288

@sbulen

Description

@sbulen

Basic Information

In the sendmail/mimespecialchars routines, there is no check for a character limit.

I believe the 7-bit format has a 1000 byte limit that should be honored.
https://stackoverflow.com/questions/25710599/content-transfer-encoding-7bit-or-8-bit

I suspect this may be causing the "Message has lines too long for transport" error reported in the forum.
https://www.simplemachines.org/community/index.php?topic=589251.0

Steps to reproduce

Tricky to reproduce... My host appears to simply strip the 7-bit portion from the email & use the utf8 portion.

User reports getting it when flagging a post as a forum announcement, to trigger an email. Some emails are delivered, some get undeliverable replies with the "Message has lines too long for transport" message.

What is easy to reproduce is to see that SMF's sendmail produces lines longer than 1000 bytes...

E.g., this 198-character line in Ukranian:
Восени 2020-го року, я вирішив, що технічно формат проекту не відповідає вимогам часу. Тому рішуче почав перебудовувати сайт на новий движок - WordPress. Планувалось, та й так і сталося, що найбільш

Becomes this 1080 byte line in the 7bit chunk of an SMF email body:
Восени 2020-го року, я вирішив, що технічно формат проекту не відповідає вимогам часу. Тому рішуче почав перебудовувати сайт на новий движок - WordPress. Планувалось, та й так і сталося, що найбільш

As a result, the 1000 byte limitation is much tougher on languages with multibyte characters.

Expected result

No response

Actual result

No response

Version/Git revision

2.1.4

Database Engine

MySQL

Database Version

8.4

PHP Version

8.3.8

Logs

Additional Information

Lots of details in this thread:
https://www.simplemachines.org/community/index.php?topic=589251.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions