Electronic mail.
Formatted vs Unformatted Email
Email comes in two main variants, plain text and formatted html. Formatted html has an undeserved bad reputation.
Spammers The advantages of formatted email are:
- You can use font, colour and font size to emphasize the important parts of your message and deemphasise the
unimportant parts, e. g. When elephants fight, it is the grass that suffers.
- You can embed images, photographs and diagrams.
- Bulleted lists and numbered lists are easy to create. The automatically reflow to fit the recipient’s
screen size.
- You can embed hypertext links rather than including a giant bundle of information along with the
email.
- The reader can decide the size of type. It will reflow automatically. This is particularly important for
the visually impaired.
- In theory, you should be able to use tables to align material in columns. Unfortunately Eudora, the main
email program, does not support tables.
- There is a way to mark parts of your message with <pre> or <code> tags so that spacing and line ends are precisely preserved. This way code examples
don’t get mangled by newsreaders.
- Your messages have a more personal flavour. They don’t look exactly like everyone else’s.
- If you use Unicode, you can use words and phrases from any language you want. This does not require full
HTML (Hypertext Markup Language) formatting.
The disadvantages of formatted email are:
- If you send them to someone with an old fashioned browser, they will have a hard time decoding them. Eudora
refuses to keep track for you who has a modern and who has an old fashioned browser. You must keep it in your
head.
- There is a temptation to spend too much time on the presentation and not enough on the content.
- They take longer to transmit because they contain invisible formatting tags.
- They can be easily mistaken for advertising spam.
Security and Privacy
Unfortunately compression, encryption and digital signing are not yet automatic in email. This means:
- Mail, especially mail with large enclosures, takes five times longer to send and receive than it
should.
- Unpleasant people can snoop on your mail.
- Unpleasant people can send mail that looks as if you sent it
- You are inundated from mail from people you don’t want to hear from.
- Enclosures are send to you even when you don’t want them.
Outlook, Outlook Express and Eudora among others have plug-ins that clumsily support PGP digital signing and encryption.
Outlook, Outlook Express and Netscape’s e-mail can do S/MIME (Secure Multipurpose Internet Mail Exchange) encrypted emails. Unfortunately Eudora
still does not do S/MIME. Perhaps if enough people complain, the Eudora developers will stop fooling around
decorating messages with chilli peppers and get on with the bread and butter issues. software,
Because of the problem of requiring consensus for all sender and receiver email evolution has been extremely
slow.
Email in Java
There are several mail protocols. The most common are SMTP to send mail and POP3 and to receive it.
To send email from a Java servlet, you usually would use JavaMail. Simple applications might use a home brew SMTP or
JavaMail.
Applets are problematic. The mail server must be the one running on the same server
as the Applet. You might use JavaMail or a home brew SMTP (Simple Mail Transfer Protocol) to talk to it. Unsigned Applets may not talk to any
other server than the one it was loaded from.
SMTP is a mess when it comes to authorisation. Who is allowed to use the server? SMTP
does not have a proper authentication method, just a bunch of ad hoc kludges. JavaMail does not get you off the
hook. It has to use SMTP underneath.
To the mail server, send mail requests coming in from your Applet look like requests from the untamed wild
world. It does not know your well behaved Applet is generating them. They will likely be refused, Further, your
Applet could have been hacked by spammers.
Logically such requests should go to the user’s favourite mail server, where he will be welcome.
However, even if you knew the URL (Uniform Resource Locator) of his mail server, you could not talk to it without the hassle of Applet signing.
So what to do?
- Most people handle this by sending the information to a custom servlet and let the servlet deal with
sending the mail. The servlet need not even generate mail. It can just leave it lying around in a file or
database for the recipient to retrieve. [I hate companies who use this technique with a form demanding more
intimate details than an income tax return, with a one square inch box for your message. It reminds me of that
print legibly joke complaint form of yesteryear.]
- You can send the user to an HTML page with a mailto: tag in it. If you can
persuade the user to click the mailto: reference. that will wake up his local mail
software which knows his local mail server. Unfortunately, with this technique your program has no control over
the content of the message. Further, creating such a page on the fly and trying to fool the browser into
rendering it for you is tricky.
Legal Format
There are two different standards for the format of an email address: Full Name
<someone@some.where.com> and (Full Name) someone@some.where.com.
The official standard RFC 5322 says that you can create an email
address of words (possibly joined together by dots), so long as you avoid the control characters 0..31, space,
and
()<>@,;:\".[].
A-Z +-=!#$%^&*~`?|/ are in theory all valid, though I would avoid all of them but
-. Email addresses are case-insensitive.
In addition, quoted strings, (possibly joined by dots) are also valid. A quoted-string is any sequence of
characters (0-127) except quote (), backslash (\), and CR (13), surrounded by quotes (). Even the
three excepted characters can appear in a quoted-string if they are individually escaped with backslash. Anyone
using a quotedstring style email address obviously does not want mail from the general public.
Email Clients
- Eudora: this is the one I use. It’s main weaknesses: no UTF-8 support. Only
clumsy PGP (Pretty Good Privacy) support. No S/MIME support. It supports HTML and plain formats.
- MH, this is the original Unix email program
- AllegroMail
- Pegasus
- MS Outlook and its little brother Outlook Express. I strongly recommend avoiding
these since they are so susceptible to virus attacks.
- Polarbar: written in Java.
- tMail
- MassMail
- Thunderbird: Mozilla’s new email program. It has built-in anti-spam
and it keeps track of which of your respondents like HTML-formatted email and which plain.