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 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 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 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 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
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.