Next, you're going to use two services to interact with users outside of your
The services we've looked at so far this chapter have all been background-
processing or behind-the-scenes services. It's time to take a look at a few services
that let you interact with the world outside of your application. Starting with App
Engine's Mail API, Google App Engine Mail service supports the JavaMail interface
for sending e-mails programmatically from within an application. Your application
can send e-mails on behalf of either the application administrator or the currently
logged-in user. To see a full list of features, reference the JavaMail API by visiting
http://java.sun.com/products/javamail/javadocs/index.html. The App Engine Mail
API implements the full JavaMail API excluding the ability to connect to other mail
services for sending and receiving e-mail messages. Any SMTP configuration added
to the Transport or Session will be ignored.
As mentioned, the Mail service Java API supports the JavaMail interface. This
means that you have the ability to add e-mail targets to blind copy e-mail addresses,
send HTML-formatted messages, and add multiple attachments. There's no need
to provide any SMTP server configuration when you create a JavaMail session.
App Engine will always use the Mail service for sending messages, which can be
distributed to individuals or to large distribution lists. Messages count against your
application quota (see Chapter 3 for more details), but you get plenty of transactions
per day to fit almost any use case. You can also send attachments using the Mail
service. There are limitations on the size of attachments you can send along with a
message. Reference the online documentation for the current size limits. Table 8-2
shows a list of accepted MIME types and their corresponding file-name extensions.
Table 8-2. MIME Types accepted by the Mail service