March 2003
Table of contents
1. What is EmailPKT?
1.1. Why Email routing?
2. Compiling & Installing EmailPKT
3. How to configure EmailPKT
4. How to use it
4.1. Sending
4.2. Receiving
4.2.1. ~/.forward
4.2.2. procmail
4.3. Owner problems
5. Contacting the author
EmailPKT is a program package to send & receive FTN bundles (echomail, netmail, tics and files in general) via e-mail. It sends outgoing files either as MIME Base64 or UUE attachments that can be decoded and processed either manually with a normal email client or automatically with any software like EmailPKT. To receive incoming files, it reads the standard input or specified file and processes emails with either MIME attachments (base64, quoted printable or plain text) or UUENCODED files. Emailpkt make email message in RFC822 format and use external program to send it to recipient.
If you have a link that is not in your same city or even in your same country, using normal phone calls would be a big waste of money. Using the Internet to route is the way to solve this problem. Here comes Fido-over-IP mailers like BinkD, ifcico or Argus, but they have another problem: destination system must be on-line when your mailer try to establish session. When using e-mail routing, there are no long distance bills and there is no need of the both system to be on-line simultaneously.
Of course, email routing is not the best way of routing. The traffic generated is 30% more than the used for example in BinkD and there is no simple and 100% compatible with other software way of authentication. Nevertheless, it is a good idea to have an email system set up even if you have no need of it today (maybe you will need it tomorrow).
Other consideration for email transport is: on leased line internet comnnection if traffic from/to mail server of you provider is free (no paiment) and traffic to/from world is expensive.
Get binary package for you platform from HUSKY site or sources from site or CVS server: http://husky.sourceforge.net, cvs -d cvs.sf.net/cvsroot/husky http://sourceforge.net/projects/husky. You need download following packages: huskybse (if you have build programs from sources) smapi fidoconfig (packages named like pattern fidoconf*) emailpkt
All packages MUST be compatible versions: emailpkt 1.4 require smapi v.2.4 and fidoconfig v.1.4.
Build and install: smapi, fidoconfig and emailpkt (in this order!). On unix-like OS you may use huskymak.cfg from huskybse package or OS specific makefile.
Read documentation of fidoconfig and make config file (may use config file example included into fidoconfig package). Do not forget check edited config file using tparser tool each time!
Refer to INSTALL guide in each package for more information.
Refer to documentation of fidoconfig for all tokens usage details.
EmailPKT will use the following fidoconf keywords if available:
Global
sysop - Your name
address - FTN address of your system
email - default e-mail address of your system
protinbound - protected inbound, main for links with password
localinbound - listed inbound, for bundles from links with known
email address
inbound - unprotected inbound, for bundles from other senders
tempinbound - incoming files spool (create and use subdir here)
outbound - common fidonet outbound of your system
tempoutbound - outgoing mesages spool (create and use subdir here)
logfiledir (optional)
loglevels (optional)
screenloglevels (optional)
logechotoscreen (optional)
For each link
Email - e-mail address of his system
EmailFrom - (optional) FTN address of your system for this link
EmailSubj - (optional) string inserted to end of email subject
EmailEncoding - (optional) files encoding method
For each link that you want to route via e-mail, specify an email address for him. If you do not want to route via e-mail with a link, do not give an email address. For example, the simpliest form:
Link Joe Sysop
Aka 4:905/100
ourAka 4:905/210
Email [email protected]
EmailPKT will route files to this link via e-mail.
Link Pepe Bondiola
Aka 4:905/209
ourAka 4:905/210
EmailPKT won't route files to this link via e-mail, as it has not any address defined.
You can also use all of the keywords:
Link Joe Sysop
Aka 4:905/100
ourAka 4:905/210
Email [email protected]
EmailFrom [email protected]
EmailSubj A Fido packet for you, Joe
EmailEncoding UUE
Adding all this info for each would be a waste of time, so it is recommended that you put common information (like EmailFrom and EmailSubj) in a LinkDefaults section. See fidoconfig documentation for details.
The default encoding method is MIME Base64.
To send all the files that are waiting in the outbound to the links specified in the configuration, you must simply call EmailPKT like this (example for unixes, "$" is shell prompt):
$ hesend
So, you can easily add to your mailing scripts the above line, and you are done. E.g.:
hpt scan
hpt pack
hesend
The receiving part of EmailPKT named "hereceive". It acts like a filter or get input filename from command line. You can call it from the ~/.forward file or from procmail.
If you have a dedicated account, then you can call hereceive directly from the ~/.forward file:
$ cat ~/.forward
"|/usr/local/bin/hereceive"
$
Notes: * You need to put the full path to hereceive. * The quotes are needed. * There must be no space between the pipe character (|) and the path to hereceive.
If you do not have a dedicated account, you must pipe to hereceive only some mails. To do this with procmail, add a new rule to your ~/.procmailrc:
$ cat ~/.forward
"|/usr/local/bin/hereceive"
$ cat ~/.procmailrc
LOGFILE=/home/fido/logs/procmail.log
FIDOCONFIG=/home/fido/cfg/emailpkt.cfg
:0
* ^Subject.*FIDO
| hereceive
Of course, you must change the second line to one that suits you. For more information, refer to procmail documentation. A procmailrc example is provided with this package. Just change some variables and copy it to ~/.procmailrc for a quick start.
procmail does not see any external environment variable. So you must write into .procmailrc file a FIDOCONFIG variable pointing to the config file of fidoconfig if it is not in standard directory. (Refer to fidoconfig documentation for details).
Processing all the email with a user and having all the fido stuff with another one is a common practise. So, it is a mistake to try to write in another user's directory, and a security hole to let everyone write in the inbound directory. To solve this in an easy way, you can pipe all the mails from user A that processes the email (for example, runs fetchmail) to user B (the owner of the inbound directory), and then yes, in user's B ~/.forward finally call hereceive.
For example, user's A ~/.procmailrc:
---cut---
:0
* ^Subject: *FTN email transport
! B
:0
* ^Subject.*Routing
! B
---cut---
[...]
And user B ~/.forward:
---cut---
"|/usr/local/bin/hereceive"
---cut---
-
Actually, it is compatible with almost any kind of decent software that produces standard information. EmailPKT follows RFC 1349 and has been tested with common email software.
-
It will sure fail when dealing with non-sense information such as malformed headers or bad encodings. Do not try to test it against this!
-
Be carefull with directory permissions! You will loose data if EmailPKT cannot write to a directory.
-
EmailPKT understands PLAIN TEXT, BASE64, QUOTED-PRINTABLE and UUENCODING. S.E.A.T. (Simple Email Attach Transport, see FSP1015) support will be added in the near future. However, EmailPKT understands and processes incoming SEAT mails as normal attachments although it ignores extra information.
-
Incoming and outgoing email plain texts will be kept as a backup feature in the temporary inbound and outbound directories. A weekly deletion is recommended.
-
The inbound directory defined in the config file should be the protected inbound, as ther is no way (yet) of authentication.
-
Please TEST THE PROGRAM BEFORE START USING IT! Mail any file in local mode first to ensure that everything is OK. If you do not have it 100% right, you will loose data.
-
I am not responsable of any data lost caused either by human or computer faults. USE AT YOUR OWN RISK!
If you have troubles using this software, make a bug report please, based on form in bugreport.txt. You may place report into bugtrack area on the Husky site (http:sourceforge.net/projects/husky/, link "bugs"), fidonet echoconference FIDOSOFT.HUSKY or (russian) RU.HUSKY
Anyway, the sources are on a CVS Server, and you are welcome to make your patches with bugfixes or new features.
If you have a general question or need technical support, link to FIDOSOFT.HUSKY or RU.HUSKY from your uplink (boss if you have point address) If this echoes not exist on his node, you can ask authors for an email feed, obviously with EmailPKT :-)).
Author of 1st (beta) version of emailpkt is:
German Theler
[email protected]
4:905/210@FIDONET
Unfortunately, German quit development at 2001.
Author of the 1.4-stable and new current version is:
Stas Degteff
[email protected]
2:5080/102@FIDONET
Author of Microsoft Visual C/C++ build is:
Max Chernogor
[email protected]
2:464/108
Some patches were made by members of the Husky Development Team