eMailIt
8cefaf14575c62d6bc0008d571a32c3d85f2d8d53426c633cb96827ec7d39f7b
README
eMail-It v1.4 (c)1999,2000 by Mark Richardson
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This program was initially started in 1998 with the idea that the PsiStack
project would come on stream. During that time I used eMail-It in conjunction
with Eudora v1.4.2b running on a PC to send/receive my mail. Subsequently,
I wrote my own Tcp/Ip stack when PsiStack got shelved.
IMPORTANT INFO FOR CURRENT USERS OF eMail-It
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you are currently using a version before v1.4, then your current
configuration/setup files will NOT work with this version and subsequent
releases. There have been significant changes to v1.4 and as a result,
emailit.cfg and emailit.tcp contents have been altered. You have two choices
to upgrade to v1.4 and beyond:
(1) use the program v1xv14.opo that is in this zip file and it will
convert your old files to the new format. This utility will rename
your current emailit.cfg to emailit.cfb so you can go back to an
earlier version of emailit if you want.
(2) Delete emailit.cfg and emailit.tcp and re-enter all the setup data
again.
If you are happy with this version, delete emailit.cfb and v1xv14.opo from
your Psion or Siena.
Current Status
~~~~~~~~~~~~~~
The system can send (SMTP) and receive (POP3) email over a dial-up line to
an ISP that uses PPP for its link. The TcpIp software supports the standard
verbose username/password dialog or the Password Authentication Protocol
(PAP) for connecting to an ISP. It has been tested on a 3a, 3c, 3mx and
even a Siena using various modems and ISPs around the world. It works but
is not fast. The biggest hurdle will be getting connected to your ISP by
using the correct script for the connection (refer to the System Setup
section). One attachment per message can be sent and I have only tested the
Base64 format. eMail-It can remove attachments from incoming messages that
are in MIME Base64 format. I have not tested how eMail-It handles "large"
messages or when you have limited free space on your drive; I usually have
100k free. It should recover if it detects a problem.
NB: The TcpIp software expires on Dec 31/2000. Please contact me for status
of revision.
You will need a "null modem cable" to connect your Psion to a modem. If you
need to make one, refer to Walter Wright's Faxit 2.4 software documentation.
http://ourworld.compuserve.com/homepages/WalterWright
The adapter I made which connects the Psion serial cable (DB9 connector) to
my modem (DB25 connector) was wired as shown on the left, and a DB9 to DB9
adapter (provided by Martin Haenseler) is shown on the right:
Psion DB9 Modem DB25 Psion DB9 Modem DB9
TD 3 ---> 3 RD 3 ---> 2
RD 2 <--- 2 TD 2 <--- 3
RTS 7 ---> 5 CTS 7 ---> 8
CTS 8 <--- 4 RTS 8 <--- 7
DSR 6 <--- 20 DTR 6 <--- 4
DTR 4 ---> 6 DSR 4 ---> 6
SG 5 <--> 7 SG 5 <--> 5
RI 9 <--- 8 DCD
DCD 1 no connection
General Information
~~~~~~~~~~~~~~~~~~~
The system generally cancels your requested task (ie. New message, Reply
message, Compress mailbox) if you press <Esc> at the FIRST dialog box the
system displays. If you press <Enter>, the task will usually continue to
completion. However, you are given several other chances to cancel new and
forwarded messages by pressing <Esc> (ie. during the nickname lookup and
again when you are asked to fill in Subject and Attachments).
The numbers in the top left corner of the screen show the number of messages
in the mailbox and the size of the mailbox. The mailbox which is currently
open is shown in the top centre. The current date & time in the top right.
The grey bar highlights which message will be selected for a task. The
<Up Arrow>,<Down Arrow><PgUp>,<PgDn>,<Home>,<End> keys will move this grey
bar.
The symbols in the left column of the screen can be best described by saying
what they mean.
Deleted Msg is "deleted"
>> Msg came from the Internet (Incoming)
R Msg has been replied to
F Msg has been forwarded
> Msg is unread (symbol is a black half diamond)
<< Msg was sent to the Internet (Outgoing)
Q Msg is queued to be sent later
Normally your Inbox will have certain symbols and your Outbox will have
others. But since you can move messages around (such as an archive mailbox),
you can end up with any symbol in any mailbox. Mail arriving from the
Internet will be placed in the IN mailbox and any queued mail to be sent to
the Internet must reside in the OUT mailbox.
eMail-It uses the built-in ROM applications (Word and Data) for many of
its functions. When these applications are invoked, eMail-It clears the
screen and displays a flashing message showing what sub-activity eMail-It
is "waiting" on. If you see the blank eMail-It screen, press <WORD> or the
<DATA> button to get back to what you were working on. Another method is
to press <Shift><System> together to "scroll" through all the active
processes running on your Psion until you get to the required one. To return
to eMail-It, you must exit these applications using <Psion-x> as usual.
Some General Commands
~~~~~~~~~~~~~~~~~~~~~
Pressing <Enter> will display the selected message. The 1st message header
is "System-Time: " and indicates when this message was initally processed
by eMail-It. Since Word is used for displaying/viewing messages, you can
scroll, zoom, print, cut/paste, etc. Any changes you make to this "copy"
of the message will be discarded. To "cut/paste", use the "Bring text"
facility of Word to move portions of text from this message to another Word
document, or you can save your "cuts" to a file using the "Save as" feature
of Word and "paste" these into a new message using the "Merge in" feature of
Word. Note: It is not possible to "Bring text" from a message to a new
message directly since eMail-It only allows one message to be open at a time.
Pressing <Delete> or <Psion-g> will delete/undelete the selected message.
To remove deleted messages from a mailbox, use <Psion-k> to compress the
mailbox. An option in the compress task is to remove 'verbose' message
headers which take up alot of space.
You can move a selected message to another mailbox with <Psion-m>.
The "Send again" command <Psion-q> allows you to create a new message with
the body of the message being the same as the selected message. If you use
this command on an outgoing or queued message, you will be asked if you
wish to keep the current message headers (ie. To: Cc: Subject: etc.).
This will save you from re-entering this info if you just want to "edit"
the message body.
Press <Psion-t> to send/receive your email via the Internet. Here you will
be able to define which ISP to connect to. After a connection has been made,
you will see the "Transfer Mail" menu which allows you to send and receive
your email. You can also update your "Mail Settings" and "TcpIp Settings"
from this menu. NB: not all TcpIp revisions take effect immediately but will
on your next attempt to connect.
The command <Psion-u> will "un-attach" an attachment on a message that has
been sent in MIME Base64 format. This function will try and find an
attachment on the selected message. If one is found, it will be converted
and written to the file you entered or accepted. The directory
\emailit\attach\ must exist for this to work. The attachment will be
replaced by a message indicating where it was written to. To recover the
used disk space, use <Psion-k> to compress the mailbox.
Nicknames
~~~~~~~~~
This is a database where you can maintain all your email addresses. A
skeleton database has been included with the zip file and has the following
titles:
Nickname: a short name you can easily remember ie. jb
Address: the actual email address ie. joeblow@isp.com
Name: the real name of the person ie. Joe Blow
You can also use the nickname file to create mailing lists such as:
Nickname: ml1
Address: joeblow@isp.com, myfriend@aol.com, suzy@virgin.uk.co
Name: Mailing List 1
To use this mailing list, you would address the message To: ml1 or Cc: ml1.
eMail-It will translate "ml1" into the 3 real email addresses but the To: or
Cc: header will remain unchanged. You can create a pseudo Bcc: this way.
A note about how eMail-It translates nicknames is in order. If a nickname
is NOT the last entry in To: or Cc:, only the FIRST email address in the
address field will be used, otherwise ALL email addresses are used.
For example, if you sent a message with the following "To" header:
To: jp, suzy@virgin.uk.co, ml1
eMail-It would lookup jp in the nickname file and use the FIRST email address
listed, use suzy@virgin.co.uk as written, lookup ml1 in the nickname file and
use all email addresses listed. As a result, the message would be sent to
jp, suzy, joeblow, myfriend, and suzy again (suzy gets TWO copies).
NB: eMail-It does *not* detect infinite loops!!
If you address the message "To: ml1, suzy, jp" then joeblow, suzy, and jp
would get the message.
Installation
~~~~~~~~~~~~
1) Unzip the emailit.zip file. The files included in the zip file are:
Emailit.opa * email client application
Emailit.pic startup graphics screen
Emailit.hlp help file
Emaitit.nic nickname file with correct titles
readme.txt this file
updates.txt a summary of revisions to eMail-It so far
v1xv14.opo conversion utility to upgrade setup files to v1.4 fmt
sample.toc a sample mailbox
sample.mbx
The only required (*) file to be installed is Emailit.opa (all others
are optional).
eMail-It will create the nickname file if you want to use the
nickname facility, but you will have to change the titles yourself.
eMail-It does not care what the titles are; they are there for your use
only, but the first 3 fields are used based on assumed contents;
(Nickname:, Address:, Name:).
2) Create two new directories (\emailit\ and \emailit\attach\) on one of
your Psion drives: M (internal), A, B or C. Flash disks should not be
used due to eMail-It's I/O requirements.
3) Copy the files you want to use to the new \emailit\ directory. Yes,
emailit.opa should be placed in here to keep everything together.
4) Install Emailit.opa to the system screen.
5) Run the application. The system will create the following files in the
\emailit\ directory:
Emailit.cfg eMail-It configuration file
Emailit.log optional log file to record msgs sent and received
Emailit.sig optional signature file
Emailit.tcp TcpIp configuration file
xxxxxxx.toc mailbox file (table of contents)
xxxxxxx.mbx mailbox file (messages)
System Setup
~~~~~~~~~~~~
When you first run eMail-It, you will be asked to create a configuration
file and the system will then prompt you for some information.
We will use the following scenario to show what info goes where. Let's say
your name is Davey Jones and your email address is: d.j.locker@yourisp.com
Your internet service provider (ISP) has told you that your email password
is "SECRET", your SMTP Server is called smtp.yourisp.com and your POP3
Server is called pop.yourisp.com
The first screen allows you to set some preferences (ie. which POP3 server
to access to retrieve your mail, which type of "editor" to use, the width
of a reply message, whether you want to keep a log file to log your sent
and recd messages). You can define to eMail-It, three different POP3
servers and one SMTP server. You must run "Mail Setup" several times to
define all your POP3 servers if you have more than one. Once all your POP3
servers have been defined, you can select just one POP3 server to download
your messags from or the "ALL defined servers" option.
The second screen is called "Network Configuration"
POP3 Server pop.yourisp.com
User Name d.j.locker
Password SECRET
SMTP Server smtp.yourisp.com
Real Name Davey Jones
Return Address d.j.locker@yourisp.com
Your password: eMail-It stores it encrypted. If your password is more than 8
chars, type the first 8 on this screen and you will be prompted for 8 more
on the next screen. NB: The password is limited to 16 chars and you only have
to enter your password once; ie you do not need to re-enter it again if you
decide to change any of your settings later. You only need to re-enter it
when you actually want to change it.
The third screen is for the "Receive Mail" settings.
Leave mail on server? If you use a PC to normally get your mail and the
Psion while travelling, you might want to set this to Yes so that you can
retrieve all your messages with your PC later. If you set this to No,
the message will be deleted from the server after it has been downloaded
to eMail-It.
Truncate big messages? Some messages can be quite large and memory on the
Psion quite limited. If set to Yes, large messages will be truncated
after a set number of message lines are downloaded from the server.
Truncated messages will be displayed on the screen and you will be
asked if you wish to delete a truncated BIG message if "Leave Mail on
Server" has been set to No.
Number of message lines? This is the number of message lines (excluding
headers) to be downloaded of a big message.
How BIG is big? You define what a large message is. The default 10K.
The fourth screen is for the "Send Mail" settings. NOTE: These settings
apply when ALL your queued messages are finally sent to the SMTP server that
is defined on the "Network Configuration" screen and NOT for any one
particular message.
Use Signature? If you want to append a standard set of text to all
your outgoing messages, set this to Yes. The next screen will be the word
processor so you can create/edit your signature file.
Time Zone: This field is appended to the "Date:" header of the
outgoing msg. It is your time zone in the world relative to GMT.
(Note: -0500 can be used for EST)
Format for Attachments: You have only 2 choices & Mac users use BinHex :-(.
Base64 will be sent as a MIME multipart/mixed message. UUcode will be
appended to the original msg in Unix compatible format. The UUcode format
was a popular format before the introduction of MIME and Base64 but has
since become less popular.
Reply-To Address: The field is left blank unless you want a "Reply-To:"
message header to be included in your outgoing messages. This is used
when you want to have any replies to your messages sent to a specific
email address which is different than your Return Address you defined
on the "Network Configuration" screen.
Tcp/Ip Setup
~~~~~~~~~~~~
The TcpIp setup is done when you initiate the mail transfer facility.
The first screen asks you which settings to access (Port or ISP settings).
The port settings will be used with any of the ISP setups since these
settings pertain to your modem and communications port. IrDA has been added
but it has NOT been tested yet. "Ignore DSR" should be left as "Y" for most
modems, however the Psion Travel Modem requires this set to "N". The Debug
level has 4 settings; if you select "file", the file \emailit\dump will be
created to record the modem traffic. Useful for finding out why you cannot
connect to your ISP. Setting the level to "screen" may give you some comfort
in that something is going on when you see little progress being made, but
do not be alarmed by some of the diagnostic messages that will be displayed.
Std Modem Settings: Psion Travelmodem Others
Baud rate: 38.4k depends
Parity: none none
Data bits: 8 8
Stop bits: 1 1
Handshaking: RTS RTS
Ignore DSR: N Y
You are allowed 3 different ISP setups. To configure an ISP setup, set the
name in the "ISP:" field to the one you want and set the "Action:" field
to "Update". You can change the ISP name on the next screen but the name
must be more than 1 char in length and have no commas in it. The info about
passwords given in the previous section applies here also.
The 4-digit Domain Name Server numbers, sometimes just referred to as DNS,
come from your ISP. You will see an error message if you enter these in an
incorrect manner and the faulty one(s) will be reset back to "0.0.0.0".
"Freeserve" in the UK tell you that "Domain name service is dynamic - you do
not need to set this." This may be true if you use some specialty software
from "freeserve", but you will have to search their website for these DNS
numbers; look in the Mac section. At least DNS1 must be valid in order for
TcpIp to work.
The login script is very basic. You send something, you wait for something,
you send something, you wait for something. The somethings are CASE
sensitive and are separated by one or more spaces. Everything sent is
terminated by a carrage return if one does not exist already. When the logon
script has completed, the message "Logging on to Network" will be displayed.
There are 4 keywords:
ph$ the phone number
id$ the userid/name
pw$ the password
sp$ special char encoding
Use a keyword when you want to send that data. The sp$ keyword is followed
by the 3 digit decimal code of the char you wish to send. This keyword can
be used over and over to send a string of chars. ie. sp$032Asp$013 will
send the space char, the letter "A" and then a carrage return.
The script is limited to 250 chars and initially set to:
ATZL0E0 OK ph$ : id$ : pw$
ie. send a modem initialization string to the modem and wait for OK to be
received back. Then send the phone number and wait for a colon to be
received. Then send the user name and wait for a colon, then send the
password.
The biggest hurdle to get eMail-It to work is getting connected to your ISP
using the correct script. It helps if you logon to your particular ISP using
a "terminal" to see what your ISP dialog is in order to create the correct
script. But you can also do it by "trial and error". To do this, start with
a script that just sends the phone number and wait for something, say "::".
ATZL0E0 OK ph$ ::
When you "timeout", TcpIp will display on the screen what was sent back by
the ISP. If the ISP does not prompt you for your username, it may want you
to use PAP/CHAP or it may be waiting for you to send just a carrage return.
If your ISP is using PAP/CHAP, then the following script may work:
ATZL0E0 OK ph$
If you see a username prompt, use some part of this prompt to create the next
part of your script. For example, the ISP may send a stream of info ending
with "Username". So tell the TcpIp to wait for some characters such as
"name" and then send your userid. The next script to try would then be:
ATZL0E0 OK ph$ name id$ ::
and see what comes back. It will usually be a prompt for your password. Your
final script may end up being:
ATZL0E0 OK ph$ name id$ word pw$
When you see "Logging on to network", your script has completed and PPP Link
is now going to try and "talk" to your ISP. If you get "PPP protocol bad"
or "ISP wishes to CHAP", your ISP is using a protocol that the TcpIp does
not recognize and you MAY not be able to connect. If for any reason the
TcpIp cannot "talk" to the ISP correctly, you will get the message
"Unable to negotiate PPP (login failed)".
Three examples of what dialog your ISP may go thru are:
Username: [] Login: [] CONNECT
Password: [] Password: [] :
[] Protocol: [] ID:
The questions usually end in a ":" and you are requested to send some info.
In the second example, the ISP wishes to know what protocol to use; SLIP,
CSLIP or PPP. The TcpIp only supports PPP so you would respond with PPP.
The 3rd example is for Compuserve and you are to send just a carrage return
after the CONNECT msg to start thing rolling and a very long string of data
for the id which also incorporates your password. Similar to Compuserve,
your ISP may just wait for you to send a carrage return after the modem
connects. You may have to play around to get the correct script for each
ISP you use.
Sample scripts for the above three examples could be:
Example 1: atzl0e0 OK ph$ name: id$ word: pw$
Example 2: ATZ OK ATL0E0 OK ph$ gin: id$ word: pw$ ocol: PPP
Example 3: AT&F OK ATZL0E0 OK ph$ CONNECT sp$013 : +CIS ID: id$
NB: append the following to your ISP id in the User Name field
+/NOINT/PPP:CISPPP\pw$
The pw$ will be replaced by your real password when id$ is sent.
Another sample script is the following which used an ELSA Microlink 28.8TQV
Modem to connect to the "Blue Window" ISP in Switzerland. The ISP timeout
field was set to 40. This ISP uses the CHAP/PAP authentication method for
userid/password validation.
at&f\v8 OK ats7=60s30=0l0m1\n3%c3\q3x4 OK ph$
What commands you send to your modem depends what modem you have, but there
are some standard things such as ATZ (reset) and AT&F (load factory
settings). Modem commands may work in lower case, but the responses are
normally upper case.
One final word on the TcpIp. It maintains a monthly cache of DNS lookups in
order to speed up processing. This should not present a problem, but if you
experience problems, delete the cache manually using "TcpIp Setup".
Known Limitations/Bugs
~~~~~~~~~~~~~~~~~~~~~~
1) Most setup fields are limited to 40 chars, passwords 16 chars.
2) Only one attachment can be placed on a message.
3) Only one To: header is allowed and is limited to 250 characters.
4) Only one Cc: header is allowed and is limited to 64 characters.
5) Multiple addresses are separated by a comma and one or more spaces.
Use a comma ONLY to separate email addresses. Do not use a comma in a
way such as To: "Smith, Joe" <js@isp.com> it will not parse correctly.
6) You can place nicknames in the To: and Cc: headers, but be aware of how
eMail-It translates nicknames to actual email addresses. See the
Nicknames section for details. The "nickname address" field MUST be
less than 250 chars and this can be easily checked by seeing that the
"Name" field is correct when you do a nickname lookup.
7) You cannot change the From: address except with Mail Setup. The info
stored in Mail Setup is used when communicating with the SMTP server
and not what is shown in the message header. I may change this as some
servers check who are authorized to send messages based on the From:
header.
8) Only attachments in MIME base64 format can be removed from a message.
9) Standard mail messages use the US-ASCII character set (ie. 7-bit) and
eMail-It does NOT check if you use only these characters. eMail-It
creates 8BITMIME message headers for all messages but does NOT check
if the server will process them. Not all Mail Transport Agents (MTA)
will. You run the risk of the message being rejected if you do not
use US-ASCII. With ESMTP becoming the standard, this may not pose a
problem, but ....
Special Thanks To
~~~~~~~~~~~~~~~~~
Info on UUcode came from Jochen Siegenthaler. The initial design of the
startup graphics screen was taken from the works of Adam Dawes. The icon
was slightly modified from the works of Matt Gumbley. Alan Clifford (UK),
Gian Mario Weiss (Switzerland), and others, helped with Beta testing.
To Do List
~~~~~~~~~~
1) Rewrite TcpIp (a separate application) in assembler in hopes that it will
speed up the Internet communications.
2) Check for 8-bit chars in outgoing mail.
Legal Stuff
~~~~~~~~~~~
This application (eMail-It v1.4 and TcpIp v1.2) is offered as freeware and
is copyrighted by Mark Richardson 1999,2000
I cannot be held responsible for any loss of data or damage caused to you,
your machine or anything else in near proximity caused directly or
indirectly by eMail-It or its associated programs.
If you redistribute this package, it *MUST* be done by way of the
*UNALTERED* .ZIP file which you SHOULD have received in the first place!
Reverse engineering of this application's component parts as well as TcpIp
is STRICTLY FORBIDDEN!
etc, etc, etc ;-)
Mark Richardson
February 2000
email: markr@s4.interpasscard.net
Unknown
eMailIt
8cefaf14575c62d6bc0008d571a32c3d85f2d8d53426c633cb96827ec7d39f7b
|