Skip to content

Conversation

@masamunecyrus
Copy link

See:
http://stackoverflow.com/questions/15224224/smtp-dot-stuffing-when-and-where-to-do-it
http://tools.ietf.org/html/rfc5321#section-4.5.2

According to the SMTP standard RFC 5321, section 4.5.2:

To allow all user composed text to be transmitted transparently, the following procedures are used:

  • Before sending a line of mail text, the SMTP client checks the first character of the line. If it is a period, one additional period is inserted at the beginning of the line.
  • When a line of mail text is received by the SMTP server, it checks the line. If the line is composed of a single period, it is treated as the end of mail indicator. If the first character is a period and there are other characters on the line, the first character is deleted.

The current version of sendemail DOES pad lines consisting ONLY of a single period (.), but DOES NOT pad lines that begin with a period with another period. The result of this behavior is that mails sent via sendemail are received with that first period truncated.

For example, if you send an e-mail with the body text:

.
.test

You will receive that e-mail with the following body text:

.
test

This bug is fixed by doing a regexp search for all lines in $message beginning with a . and replace with ...

See:
http://stackoverflow.com/questions/15224224/smtp-dot-stuffing-when-and-where-to-do-it
http://tools.ietf.org/html/rfc5321#section-4.5.2

According to the SMTP standard RFC 5321, section 4.5.2:
> To allow all user composed text to be transmitted transparently, the following procedures are used:
* Before sending a line of mail text, the SMTP client checks the first character of the line. If it is a period, one additional period is inserted at the beginning of the line.
* When a line of mail text is received by the SMTP server, it checks the line. If the line is composed of a single period, it is treated as the end of mail indicator. If the first character is a period and there are other characters on the line, the first character is deleted.

The current version of sendemail does not pad lines beginning with a period with another period, mails sent via sendemail are received with that first period truncated.

This bug is fixed by doing a regexp search for all lines in $message beginning with a "." and replace with ".."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant