O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Programming Internet Email

Book Description

The Internet's "killer app" is not the World Wide Web or Push technologies: it is humble electronic mail. More people use email than any other Internet application. As the number of email users swells, and as email takes on an ever greater role in personal and business communication, Internet mail protocols have become not just an enabling technology for messaging, but a programming interface on top of which core applications are built.Programming Internet Email unmasks the Internet Mail System and shows how a loose federation of connected networks have combined to form the world's largest and most heavily trafficked message system.Programming Internet Email tames the Internet's most popular messaging service. For programmers building applications on top of email capabilities, and power users trying to get under the hood of their own email systems, Programming Internet Email stands out as an essential guide and reference book. In typical O'Reilly fashion,Programming Internet Email covers the topic with nineteen tightly written chapters and five useful appendixes.Following a thorough introduction to the Internet Mail System, the book is divided into five parts:

  • Part I covers email formats, from basic text messages to the guts of MIME. Secure email message formats (OpenPGP and S/MIME), mailbox formats and other commonly used formats are detailed in this reference section.
  • Part II describes Internet email protocols: SMTP and ESMTP, POP3 and IMAP4. Each protocol is covered in detail to expose the Internet Mail System's inner workings.
  • Part III provides a solid API reference for programmers working in Perl and Java. Class references are given for commonly used Perl modules that relate to email and the Java Mail API.
  • Part IV provides clear and concise examples of how to incorporate email capabilities into your applications. Examples are given in both Perl and Java.
  • Part V covers the future of email on the Internet. Means and methods for controlling spam email and newly proposed Internet mail protocols are discussed.
  • Appendixes to Programming Internet Email provide a host of explanatory information and useful references for the programmer and avid user alike, including a comprehensive list of Internet RFCs relating to email, MIME types and a list of email related URLs.
Programming Internet Email will answer all of your questions about mail and extend your abilities into this most popular messaging frontier.

Table of Contents

  1. A Note Regarding Supplemental Files
  2. Preface
    1. How This Book Is Organized
    2. Conventions Used in This Book
    3. Resources
    4. Related Books
    5. We’d Like to Hear From You
    6. Acknowledgments
  3. 1. Electronic Mail on the Internet
    1. Email Systems
      1. Internet Email
      2. X.400 Email
      3. Proprietary Email Systems
    2. Internet Email Standards
    3. Tools of the Trade
    4. The Basic Internet Email System
      1. Gateways to Foreign Mail Systems
      2. Sending Mail from MUAs
      3. Transferring Mail by MTAs
        1. Anti-spamming MTAs
        2. Types of MTAs
      4. Delivery of Mail by MDAs
      5. Retrieval of Mail by MRAs
      6. Receiving Mail by MUAs
  4. 2. Simple Text Messages
    1. Internet Text Messages
    2. Think Globally, Act Locally
    3. Headers
      1. Some Notes on Headers
        1. Long headers
        2. Order of headers
        3. Limitations on originator headers
    4. Mandatory Headers
      1. Optional Headers
      2. Dynamic Headers
    5. User-Defined Headers
    6. Address Formats
  5. 3. Multipurpose Internet Mail Extensions
    1. Mail with Attitude
    2. MIME Header Fields
    3. MIME Encoding
      1. 7-bit, 8-bit, and Binary
      2. Quoted-Printable
        1. An example of quoted-printable encoding
        2. Decoding quoted-printable
      3. base64
        1. An example of base64 encoding
        2. Decoding base64
    4. MIME Boundaries
    5. MIME Summary
      1. Encoding Gotchas
  6. 4. Creating MIME-Compliant Messages
    1. The Minimal MIME Message
    2. Multipart Messages
    3. Nested Body Parts
    4. A Few Interesting MIME Types
      1. The message/external-body Type
      2. The message/partial Type
      3. The multipart/alternative Type
    5. MIME Message Creation Gotchas
  7. 5. OpenPGP and S/MIME
    1. An Extremely Brief Introduction to Security Concepts
    2. An Overview of OpenPGP and S/MIME
    3. Combining Security and MIME
      1. The multipart/signed MIME Type
      2. The multipart/encrypted MIME type
    4. The OpenPGP Format
    5. The S/MIME Format
  8. 6. vCard
    1. Personal Data Interchange with vCard
    2. The vCard Version 3.0 Profile
    3. Version 3.0 Housekeeping Types
    4. Version 3.0 Identification Types
    5. The vCard Version 2.1 Profile
    6. Attaching vCards to Email Messages
  9. 7. Mailbox Formats
    1. mbox
    2. Common mbox Variations
    3. Variation for lMAP Mailboxes
    4. MH
    5. Maildir
  10. 8. Mailcap Files
    1. Mailcap File Format
    2. Implementation Under Unix Operating Systems
    3. Implementation Under Other Operating Systems
  11. 9. The Extended Simple Mail Transfer Protocol
    1. Using ESMTP
    2. ESMTP Commands
      1. Mail Transaction Commands
    3. ESMTP Sessions
  12. 10. The Post Office Protocol
    1. Using POP
      1. Comparing POP and IMAP
    2. POP Commands
      1. The Authorization State
        1. Username/password authentication
        2. APOP authentication
        3. AUTH authentication
      2. The Transaction State
      3. The Update State
    3. POP Sessions
  13. 11. The Internet Message Access Protocol
    1. Using IMAP
    2. IMAP Commands
    3. The Nonauthenticated State
    4. The Authenticated State
    5. The Selected State
    6. IMAP Sessions
  14. 12. The Application Configuration Access Protocol
    1. Using ACAP
    2. ACAP Datasets
    3. Access Control
    4. Example Dataset
    5. ACAP Commands
    6. The Nonauthenticated State
    7. The Authenticated State
    8. ACAP Sessions
  15. 13. Email-Related Perl Modules
    1. Finding and Installing Perl Modules
    2. Maturity of the Mail-Related Modules
      1. Contributing to the Effort
    3. Email-Related Modules Quick Reference
      1. Reading an Entry
        1. Version information
        2. Dependencies
        3. Synopsis
      2. MIME-Base64
      3. MIME-Lite
      4. MIME-tools
      5. MailCclient
      6. MailFolder
      7. MailTools
      8. Libnet
      9. POP3Client
  16. 14. The Java Mail API
    1. An Overview of the Java Mail API
    2. Java Mail API Reference
      1. Reading an Entry
      2. The javax.mail Package
    3. The javax.mail.internet Package
    4. The javax.mail.search Package
    5. The javax.mail.event Package
  17. 15. Creating and Sending a Multipart Mail Message
    1. Designing a MIME-Capable Replacement for /bin/mail
    2. Creating mail.pl
    3. Extending and Enhancing mail.pl
    4. Sending MIME Email via Java
  18. 16. Archiving and Cleaning a Mailbox
    1. Scrubbing Unwanted MIME Attachments
    2. Creating mboxscrub.pl
    3. Extending and Enhancing mboxscrub.pl
  19. 17. Watching an IMAP Mailbox
    1. Designing JBiff
    2. Creating JBiff
    3. Extending JBiff
  20. 18. Anti-Spamming Techniques
    1. The UCE Problem
    2. Recipient Approaches
      1. Filtering Incoming Messages
      2. Revenge
    3. Service Provider Approaches
      1. MTA Controls
      2. Contractual Controls
    4. Legislative Approaches
  21. 19. The Future of Email
    1. Trends in MUAs
    2. Trends with Web-based Mail
    3. Trends Inside Firewalls
  22. A. Internet RFCs Relating to Email
  23. B. MIME Media Types
  24. C. ASCII
  25. D. Mail-Related URLs
  26. E. Glossary
  27. Index
  28. Colophon
  29. Copyright