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 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
|
/* ====================================================================
* Copyright (c) 2000-2002 University of Valencia. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the University
* of Valencia."
*
* 4. The names "Postman" must not be used to endorse or promote products
* derived from this software without prior written permission.
*
* 5. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the University of Valencia"
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*/
You can get info for Postman in:
http://www.uv.es/postman/
To subscribe to Postman mail list, please send one message with body
"subscribe Postman-l YourFirstName YourLastName"
to address
"listserv@listserv.uv.es"
Install for Postman v. 2.0
---------------------------
WARNING: For change old Postman releases to 1.8 or upper
---------------------------------------------------------
Admin must delete all the files .savedmsg in the postman users directories.
(or make a script to add a blank line next to the 5th line of this file)
Install for Postman v. 1.12
----------------------------
-I have got working Postman in Linux and HP systems. Some people
have Postman working on Solaris 7, 8 y 2.5.1. It must be easy got
working on other UNIX systems. If you get it working on other systems,
please email me.
-Compile imap c-client from University of Washington. You do not need make
a install of the imap sources! That software has the IMAP and MIME static
library for Postman use. I have tested with Postman the last imap releases
(4.7, 2000 and 2001). In
ftp://ftp.uv.es/pub/unix/postman/postman.html
you can see the releases I have tested with Postman, but probably any upper
release will work Ok.
You can get some of then from:
ftp://ftp.cac.washington.edu/imap/imap.tar.Z
or from our ftp server
ftp://ftp.uv.es/pub/unix/postman/
(One problem that can arise when compiling the library is the presence in the
file 'mail.h' of the variables 'or' and 'not' (in the struct SEARCHPGM).
You will rename them in the files where they appear (approximately 20 times,
search them with "grep -r -e '->or' imap_dir").
The "or" and "not" structure members in c-client produce errors in C++
compilations since gcc 2.95; the reason is that in a recent ANSI draft of C++,
those strings have become reserved words and are illegal for use as identifiers.)
Put the imap sources at the same level that postman sources. Something like:
/sources/imap.xx.xx
/sources/postman
-Create an UNIX user to run the daemons (must be part of the web server group).
-Edit and setup the next files: Makefile, Config.h and files/interdaemon.cfg
-Run make
-Run make install
-The directory structure after install must be something like that:
(Root dir)
#ls -dl /var/postman
drwxr-x--- 7 postman www 1024 Jul 11 2000 /var/postman
(for postman users structure)
#ls -al /var/postman/
drwx------ 2 postman www 4096 Jul 11 11:01 locks
drwxr-x--- 2 postman www 4096 Jul 11 11:01 netnews
drwxrwx--- 2 postman www 4096 Jul 11 11:02 server
drwxr-x--- 2 postman www 4096 Jul 11 11:01 sessions
drwxrwx--- 2 postman www 4096 Jul 11 11:01 tmp
drwx--x--- 2 postman www 4096 Jul 11 11:01 users
-rw-r----- 1 postman www 2621440 Feb 13 00:17 postman.db
(for postman web pages)
#ls -al /usr/local/apache/htdocs/postman/
-rw-r--r-- 1 root www 617 Jul 11 11:01 disabled.html
drwxr-sr-x 2 root www 4096 Jul 11 11:01 help
drwxr-sr-x 2 root www 4096 Jul 11 11:01 icons
-rw-r--r-- 1 root www 1992 Jul 11 11:01 postman_eng.html
-rw-r--r-- 1 root www 2018 Jul 11 11:01 postman_spa.html
-rw-r--r-- 1 root www 2045 Jul 11 11:01 postman_val.html
(for postman web cgi)
#ls -al /usr/local/apache/cgi-bin/
-rwxr-xr-x 1 root www 156008 Jul 11 11:02 postman
(more stuff)
#ls -al /usr/local/etc
-rw-r--r-- 1 root www 320 Jul 11 11:01 interdaemon.cfg
-rw-r--r-- 1 root www 1 Jul 11 11:01 postman.disabledx
-rw-r--r-- 1 root www 76 Jul 11 11:01 postman.mailcap
-rw-r--r-- 1 root www 136 Jul 11 11:01 postman.motd.eng
-rw-r--r-- 1 root www 154 Jul 11 11:01 postman.motd.spa
-rw-r--r-- 1 root www 136 Jul 11 11:01 postman.motd.val
(true daemon and the conf file)
#ls -al /usr/local/sbin
-rwxr-xr-x 1 root root 997 Jul 11 11:01 interdaemon.ini
-rwxr-xr-x 1 root root 914424 Jul 11 11:02 interdaemon
-The user postman and his group:
# grep postman /etc/passwd
postman:*:37:102:Postman user:/var/postman:/bin/bash
# grep postman /etc/group
www::102:www,postman
Moreover, you must have a Web Server (like Apache) in the same computer and
one IMAP server (in the same or other computer).
You can now access to postman with
http://the.httpd.server/cgi-bin/postman?lang=eng
If you want to use postman.db, every user must have the next info:
imapserver char[49]
imapport integer
smtpserver char[49]
maildomain char[49]
The login pages
----------------
Postman have, in the distribution, four login pages:
postman_eng.html (for english language)
postman_spa.html (for spanish language)
postman_val.html (for catala language)
postman_xxx.html (english example page for user imap server choosing demostration
writing it in a text field)
postman_xxx2.html (english example page for user imap server choosing
demostration selecting it from combobox)
(
Have in mind that these pages are not pure html. Postman preprocess that pages
for special tags. For example, the next line will include a file
in the html returned by Postman for user announcements:
^ INC /usr/local/etc/postman.motd.spa
)
For avoid the selection of server by the user:
-you must set the switch allowotherimapservers = 0 in "interdaemon.cfg".
-In html login page: <INPUT TYPE=HIDDEN name=imapserver value="#">
WARNING: "#" is NOT localhost.
This value for imapserver mean:
If usedbforconf is 1 and the user exists in db, search postman.db for user conf (imapserver,
imapport, smtpserver, maildomain).
If usedbforconf is 0 or the user do not exists in db, use def_user_not_in_db entry
in "interdaemon.cfg" for default section entry.
For allow the selection of any server by the user (not listed in "interdaemon.cfg"):
-you must set the switch allowotherimapservers = 1 in "interdaemon.cfg".
-In html login page:
<INPUT TYPE=TEXT SIZE=20 name=imapserver value="postal"> <BR>
or
<SELECT NAME="imapserver">
<OPTION VALUE=postal.uv.es selected>postal
<OPTION VALUE=post.uv.es>post
<OPTION VALUE=charlot.uv.es>charlot
<OPTION VALUE=teleline>teleline
</SELECT>
You can also, of course, include a brief login box in anyone html page
including the html code:
<HR>
<FORM ACTION="http://xxx.xx.xx/cgi-bin/postman" METHOD="POST">
<INPUT TYPE=HIDDEN NAME="lang" VALUE="spa"><INPUT TYPE=HIDDEN NAME="cmd" VALUE="login">
<INPUT TYPE=HIDDEN NAME="beginmailbox" VALUE="#local.a">
<INPUT TYPE=SUBMIT NAME="Entrar" VALUE="Mail">
<INPUT TYPE=HIDDEN name=imapserver value="#">
User:
<input type=text size=10 name=user value="">
Password:
<input type=password size=10 name=pw>
</font>
</FORM>
<HR>
If you want to specify the initial mailbox to open will be
, by example, your IMAP folder "postmanlist" you must put
the next line in the html page:
<INPUT TYPE=HIDDEN NAME="beginmailbox" VALUE="postmanlist">
or one NNTP folder:
<INPUT TYPE=HIDDEN NAME="beginmailbox" VALUE="#comp.os.linux.announce">
You could do like as the next:
<SELECT NAME="beginmailbox">
<OPTION VALUE="" selected>My mail
<OPTION VALUE="#local.announces">Institutional announces
</SELECT>
Screenshots:
-------------
We have a working Postman in
http://correo.uv.es
Sorry, no demo user at this moment.
You can see screenshots in:
ftp://ftp.uv.es/pub/unix/postman/screenshots/screenshots.html
Problems:
----------
-Postman configuration is not yet automatized. The most problems
are for wrong file permission or owners.
-You must have one Apache conf entry like that in /usr/local/apache/conf/httpd.conf
DocumentRoot "/usr/local/apache/htdocs"
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
<Directory "/usr/local/apache/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
or you can use virtual hosts:
#NON SECURE MAIL
<VirtualHost 147.156.1.19:80>
SSLDisable
DocumentRoot /u/www/htdocs
ServerName correo.uv.es
ErrorLog logs/correo_error.log
TransferLog logs/correo_access.log
ScriptAlias /cgi-bin/ /u/www/cgi-bin/
RewriteEngine on
RewriteRule ^/$ /cgi-bin/postman?lang=spa [PT]
</VirtualHost>
#SECURE MAIL
<VirtualHost 147.156.1.19:443>
SSLEnable
Port 443
DocumentRoot /u/www/htdocs
ServerName correo.uv.es
ErrorLog logs/correo_secure_error.log
TransferLog logs/correo_secure_access.log
ScriptAlias /cgi-bin/ /u/www/cgi-bin/
RewriteEngine on
RewriteRule ^/$ /cgi-bin/postman?lang=spa [PT]
</VirtualHost>
Copyright:
-------------
Jose Agustin Lopez Bueno (Agustin.Lopez@uv.es) and University of Valencia.
|