Age | Commit message (Collapse) | Author |
|
* email/email.scm (email->headers+body): If non-ASCII non-UTF-8
characters occur in the headers, do not raise a decoding error. Work
around using the substitute conversion strategy.
* tests/email.scm ("tolerate non-ASCII characters in headers"): Rename
to "decode utf-8 characters in headers".
("tolerate non-ascii non-utf-8 characters in headers"): New test.
Reported-by: Christopher Baines <mail@cbaines.net>
|
|
We tolerate non-ASCII characters in headers in order to support Emacs
message mode parens style addresses.
* email/email.scm (email->headers+body): Read headers as UTF-8
characters.
* tests/email.scm ("tolerate non-ascii characters in headers"): New
tests.
Reported-by: Christopher Baines <mail@cbaines.net>
|
|
* tests/email.scm ("RFC5322 A.1.1. A message from one person to
another with simple addressing", "RFC5322 A.1.2. Different types of
mailboxes"): New tests.
|
|
* tests/email.scm ("RFC2046 5.1.1. Common syntax"): New test.
|
|
* email/email.scm (email->headers+body): If there are no headers,
return "" as headers not an eof-object.
(parse-email-body): Parse headers of parent entity or email to
parse-mime-entity.
(add-default-mime-entity-headers): New function.
(parse-mime-entity): Use add-default-mime-entity-headers instead of
add-default-headers. Handle MIME entities without headers.
* tests/email.scm ("decode MIME entity without headers"): New test.
|
|
Prior to this, parse-email would accept email in the form of a
string. A string is constrained to use the same encoding for all its
characters whereas an email can have characters encoded using
different encoding schemes. Therefore, it is more correct that
parse-email deals with bytevectors instead of strings.
* email/utils.scm (read-bytes-till): New function.
* email/email.scm (body->mime-entities, email->headers+body,
decode-body): Deal with emails as bytevectors instead of strings.
(parse-mime-entity): Rename text argument to bv.
(parse-email, parse-email-body): Overload to handle input in the form
of a string or bytevector.
* doc/guile-email.texi (Parsing e-mail): Document overloading of
parse-email and parse-email-body.
* tests/email.scm ("handle truncated multipart message gracefully"):
Deal in bytevectors instead of strings.
("email with 8 bit encoding and non UTF-8 charset", "multipart email
with a 8 bit encoding and non UTF-8 charset part"): New tests.
* tests/email-with-8bit-encoding-and-non-utf8-charset,
tests/multipart-email-with-a-8bit-encoding-and-non-utf8-charset-part:
New files.
Reported-by: Jack Hill <jackhill@jackhill.us>
|
|
Prior to this, MIME encoded words in the Subject header were not
decoded.
* email/email.scm (parse-email-headers): Decode MIME encoded words in
Subject header.
* tests/email.scm ("decode MIME encoded words in Subject header"): New
test.
Reported-by: Ricardo Wurmus <rekado@elephly.net>
|
|
* tests/email.scm ("decode MIME encoded phrases that contain multiple
MIME encoded words each with their own encoding"): New test.
|
|
* tests/email.scm ("decode MIME encoded word: wikipedia example",
"decode MIME encoded phrases that mix ASCII text and MIME encoded
words"): New tests.
|
|
* tests/email.scm ("parse name-addr email address", "parse addr-spec
email address", "parse emacs message mode parens style email
address"): New tests.
|
|
* tests/email.scm: New file.
* Makefile.am (SCM_TESTS): Register it.
|