\input texinfo @setfilename guile-email.info @settitle guile-email @copying Copyright @copyright{} 2019 Arun Isaac@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end copying @ifnottex @node Top @top guile-email @end ifnottex @menu * Introduction:: What is guile-email? * Parsing e-mail:: Parsing e-mail * Contributing:: Contributing Indices * Procedure Index:: * Type Index:: @end menu @node Introduction @chapter Introduction guile-email is a collection of email utilities implemented in pure guile. It supports parsing MIME (Multipurpose Internet Mail Extensions) compliant email messages as specified in RFC5322, RFC2045, RFC2046, RF2047 and RFC2049. @section Features @itemize @item Parse @uref{https://tools.ietf.org/html/rfc5322,,RFC5322} compliant email messages (currently does not support @uref{https://tools.ietf.org/html/rfc5322#section-4,,obsolete syntax}) @item Parse MIME compliant email messages as specified in @uref{https://tools.ietf.org/html/rfc2045,,RFC2045}, @uref{https://tools.ietf.org/html/rfc2046,,RFC2046}, @uref{https://tools.ietf.org/html/rfc2047,,RFC2047} and @uref{https://tools.ietf.org/html/rfc2049,,RFC2049} @item Parse non-standard @uref{https://www.gnu.org/software/emacs/manual/html_node/emacs/Mail-Headers.html, Emacs message mode parens style addresses} @item Encode and decode Quoted-Printable encoding, Base64 encoding and Q-encoding @item Read emails from the @uref{https://en.wikipedia.org/wiki/Mbox, mbox format} @end itemize @node Parsing e-mail @chapter Parsing e-mail @deffn {Scheme Procedure} parse-email email Parse string @var{email} and return result as an record. @end deffn @deffn {Scheme Procedure} parse-email-headers headers Parse string @var{headers} as email headers and return an association list of header keys and values. @end deffn @deffn {Scheme Procedure} parse-email-body headers body Parse @var{body} as email body where @var{headers} is an association list of header keys and values as returned by @code{parse-email-headers}. Return a list of records if the body is a multipart message. Else, return a single record. @end deffn @node Contributing @chapter Contributing Feedback, suggestions, feature requests, bug reports and patches are all welcome. Please contact me by mail at @email{arunisaac@@systemreboot.net}. @node Procedure Index @chapter Procedure Index @printindex fn @node Type Index @chapter Type Index @printindex tp @bye