aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--doc/guile-email.texi88
2 files changed, 90 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index b445d37..a0b3592 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -60,6 +60,8 @@ SCM_LOG_DRIVER = \
$(GUILE) --no-auto-compile -s \
$(top_builddir)/build-aux/test-driver.scm
+info_TEXINFOS = doc/guile-email.texi
+
EXTRA_DIST += \
$(TESTS) \
build-aux/test-driver.scm \
diff --git a/doc/guile-email.texi b/doc/guile-email.texi
new file mode 100644
index 0000000..9fed64e
--- /dev/null
+++ b/doc/guile-email.texi
@@ -0,0 +1,88 @@
+\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 <email> 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 <mime-entity> records if
+the body is a multipart message. Else, return a single <mime-entity>
+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