summaryrefslogtreecommitdiffstats
path: root/doc/README.html.in
blob: 129a6c9a5c33b3b9d13821d6f1cec3086f7d803b (plain)
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
<?xml version="1.0" encoding="iso-8895-15"?> <!-- -*-html-helper-*- -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<!-- $Id$ -->

<head>
<title>libnewmail @PACKAGE_VERSION@</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>
<h1><a name="top">libnewmail @PACKAGE_VERSION@</a></h1>

<p><i>Copyright 2003 Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;</i></p>

<ul class="toc">
    <li><a href="#license">License</a></li>
    <li><a href="#news">News</a></li>
    <li><a href="#overview">Overview</a></li>
    <li><a href="#status">Status</a></li>
    <li><a href="#documentation">Documentation</a></li>
    <li><a href="#requirements">Requirements</a></li>
    <li><a href="#installation">Installation</a></li>
    <li><a href="#acks">Acknowledgements</a></li>
    <li><a href="#download">Download</a></li>
</ul>

<h2><a name="license">License</a></h2>

<p>This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.</p>

<p>This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.</p>

<p>You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</p>

<h2><a name="news">News</a></h2>

<div class="news-date">Wed Oct 22 2003: </div> <p class="news-text"><a
href="libnewmail-0.3.tar.gz">Version 0.3</a> released; changes
include: add new tool <tt>nm-spoolhack</tt> for emulating unix mail
spools, build fixes, added some <tt>const</tt>s to the headers,
library is not completely API- but ABI-compatible (!) to previous versions.</p>

<div class="news-date">Fri June 5 2003: </div>
<p class="news-text"><a href="libnewmail-0.2.tar.gz">Version 0.2</a> released; changes include: added missing headers</p>

<div class="news-date">Wed June 4 2003: </div>
<p class="news-text"><a href="libnewmail-0.1.tar.gz">Version 0.1</a> released</p>

<h2><a name="overview">Overview</a></h2>

<p><tt>libnewmail</tt> is a generic mail checking library for
Unix/Linux and other operating systems. It supports a simple API, an
extensible plugin architecture and asynchronous queries among other
features. It is intented to be a replacement for all that crappy and
incomplete code of all those mail checking utilities
available. Applications linking to <tt>libnewmail</tt> may enumerate
configured mailboxes, query mail box information and status and
request a mail spool auto-detection for users without any libnewmail
specific configuration. The library offers a clean API to implement
your own mail checking plugins. Programs using <tt>libnewmail</tt> may
query for both the boolean availability and the number of available
mails. (The former is usually much faster than the latter) The library
is able to distuingish between new (unread) and old (read, current)
mails. It includes two CLI tools <tt>nmail</tt> and
<tt>nmail-async</tt> using the <tt>libnewmail</tt> API for mail
checking. They are intended to be an example how to use the API with
either the synchronous or the asynchronous interface.</p>

<h2><a name="status">Status</a></h2>

<p>Currently <tt>libnewmail</tt> includes plugins for the following mailbox
protocols:</p>

<ul>
  <li>Unix mail spool (<tt>libunix.so</tt>)</li>
  <li>qmail Maildir (<tt>libmaildir.so</tt>) </li>
  <li>POP3 with SSL and APOP (<tt>libpop3.so</tt>)</li>
  <li>IMAP4rev1 with SSL (<tt>libimap.so</tt>)</li>
</ul>

<p>There is an API for a graphical configuration interface. However,
this is currently a NOOP. This feature will be added eventually.</p>

<h2><a name="documentation">Documentation</a></h2>

<p>An extensive API reference is <a
href="reference/html/index.html">available</a>, for both the
public and the plugin interface.</p>

<p><tt>libnewmail</tt> searches for mailbox configuration in
<tt>/etc/newmail/</tt> and <tt>~/.newmail/</tt>. For each configured
mail spool a distinct file exists in one of these directories. The
filename consists of a descriptive text and a plugin specification
seperated by a dot. e.g. <tt>my_funny_mailserver.pop3</tt> is a
configuration file for a mail server accessed via the POP3
plugin. Depending on the used
plugin, the configuration file may contain different configuration
directives. Each directive must be on a seperate line, leading
white spaces are ignored, as are lines beginning with # or empty
lines. Unknown directives are silently ignored. Some configuration
values (especially paths) are subject to a "specials"
expansion. The following specials are known:
</p>

<ul>
  <li><tt>%h</tt> - home directory of user</li>
  <li><tt>%H</tt> - host name</li>
  <li><tt>%u</tt> - user name</li>
</ul>

<h3>libunix.so</h3>

<p>This plugin for accessing unix mail spools knows the following directives:</p>

<ul>
  <li><tt>Path</tt>: path to the mail spool; subject to specials expansions, defaults to <tt>/var/mail/%u</tt></li>
</ul>

<h3>libmaildir.so</h3>

<p>This plugin for accessing qmail Maildirs knows the following directives:</p>

<ul>
  <li><tt>Path</tt>: path to the maildir; subject to specials expansions, defaults to <tt>%h/Maildir</tt></li>
</ul>

<h3>libpop3.so</h3>

<p>This plugin for accessing POP3 mail spools knows the following directives:</p>

<ul>
  <li><tt>Hostname</tt>: Host name of the POP3 server, defaults to <tt>localhost</tt></li>
  <li><tt>Username</tt>: User name on the POP3 server, defaults to local user name</li>
  <li><tt>Password</tt>: Password on the POP3 server</li>
  <li><tt>UseSSL</tt>: Enable SSL? (<tt>Yes</tt> or <tt>No</tt>, defaults to <tt>No</tt>)</li>
  <li><tt>Port</tt>: Which port? (Defaults to 110 whith UseSSL off and 995 otherwise</li>
  <li><tt>Debug</tt>: Request that every POP3 command is written to STDOUT on query? (<tt>Yes</tt> or <tt>No</tt>, defaults <tt>No</tt>)</li>
</ul>

<h3>libimap.so</h3>

<p>This plugin for accessing IMAP4rev1 mail spools knows the following directives:</p>

<ul>
  <li><tt>Hostname</tt>: Host name of the IMAP server, defaults to <tt>localhost</tt></li>
  <li><tt>Username</tt>: User name on the IMAP server, defaults to local user name</li>
  <li><tt>Password</tt>: Password on the IMAP server</li>
  <li><tt>UseSSL</tt>: Enable SSL? (<tt>Yes</tt> or <tt>No</tt>, defaults to <tt>No</tt>)</li>
  <li><tt>Port</tt>: Which port? (Defaults to 143 whith UseSSL off and 993 otherwise</li>
  <li><tt>Debug</tt>: Request that every IMAP command is written to STDOUT on query? (<tt>Yes</tt> or <tt>No</tt>, defaults <tt>No</tt>)</li>
  <li><tt>Folder</tt>: Which folder shall be queried? Defaults to "INBOX".</li>
</ul>

<p>The default mail spool my be defined by creating a symbolic
link named <tt>.default</tt> in <tt>~/.newmail</tt>, which points
to the select configuration file.</p>

<p>See the <tt>examples</tt> directory in the distribution for
some examples of configuration files.</p>

<h2><a name="requirements">Requirements</a></h2>

<p><tt>libnewmail</tt> was developed and tested on Debian
GNU/Linux "testing" from May 2003, it should work on most other
Linux distributions and
Unix versions since it uses GNU Autoconf and GNU libtool for source
code configuration and shared library management.</p>

<p>The library uses <a href="http://www.liboop.org/">liboop</a> for
main loop abstraction for asynchronous queries and may thus be
integrated with GTK+ and other toolkits supported by liboop.</p>

<p><tt>libnewmail</tt> uses <a
href="http://www.gnu.org/software/gnutls/gnutls.html">GnuTLS</a> for
SSL encryption of POP3 and IMAP4 remote mailbox access.</p>

<h2><a name="installation">Installation</a></h2>

<p>As this package is made with the GNU autotools you should run
<tt>./configure</tt> inside the distribution directory for configuring
the source tree. After that you should run <tt>make</tt> for
compilation and <tt>make install</tt> (as root) for installation of
<tt>libnewmail</tt>.</p>

<h2><a name="acks">Acknowledgements</a></h2>

<p>This software includes an implementation of the MD5 algorithm by
L. Peter Deutsch. Thanks to him for this.</p>

<h2><a name="download">Download</a></h2>

<p>The newest release is always available from <a href="@PACKAGE_URL@">@PACKAGE_URL@</a></p>

<p>The current release is <a href="@PACKAGE_URL@libnewmail-@PACKAGE_VERSION@.tar.gz">@PACKAGE_VERSION@</a></p>

<p>Get <tt>libnewmail</tt>'s development sources from the <a href="http://subversion.tigris.org/">Subversion</a> <a href="https://seth.intheinter.net:8081/svn/libnewmail/">repository</a>.</p>

<hr/>
<address>Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, October 2003</address>
<div><i>$Id: README.html.in 43 2003-10-20 22:13:53Z lennart $</i></div>

</body>
</html>