1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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
|