Sending Messages with Third-Party Services

Java 8 applications on App Engine can use third-party companies to
send email, SMS messages, or make and receive phone calls. For example, you
might send email to confirm business transactions, confirm the creation of user
accounts, or send marketing communications.

This page lists some examples of companies that provide communication services
and client libraries for Java 8 applications on App Engine.

Mailgun

Mailgun provides
both RESTful APIs and client libraries for sending email. As a
Cloud project user, your first 30,000 messages are free every month.
See the monthly pricing calculator on the sign up
page for
pricing on additional messages and volume discounts.

SendGrid

You can use SendGrid
to power your emails on App Engine. SendGrid can improve your
deliverability and provide transparency into what actually happens to those
emails your app sends. You can see statistics on opens, clicks, unsubscribes,
spam reports and more with the SendGrid interface or its API.

App Engine customers can send 12,000 emails every month for free
by signing up for the
SendGrid Email API plan
through the Google Cloud Console. Note that Google is compensated for customers who
sign up for a paid account.

SMS and Voice Services via Twilio

You can use Twilio to embed voice, VoIP, and messaging into applications. The
Twilio platform consists of the Twilio Markup Language (TwiML),
a RESTful API,
and VoIP SDKs for web browsers, Android, and iOS.

Adding client libraries and third-party API keys to your app

To make client libraries available in your App Engine development
and deployment environments,
specify the library in your app's dependencies file. For example if you use
Maven, specify the library in the <dependencies> section of your project's
pom.xml file.

Most third party services use API keys to authenticate your app. You generate
the keys on the third-party's site. To use those keys in your app, we recommend
you do the following:

Add the key to
the environment variables section in your app's
app.yaml
file.

For example:

env_variables:
EMAIL_API_KEY: key-from-third-party

In your app's code, retrieve the key from your environment variables.

Pass the key as required by the third party's API.

Note that anyone with access to your app.yaml will also have access to your
API keys. If you can't store app.yaml in a secure location, we recommend you
store the API keys in a secure location such as Datastore and retrieve
the keys at runtime, or keep the keys in your code but encrypt them with a
keystore, such as Cloud Key Management Service. To learn about the advantages of each
approach, see Choosing a secret management
solution.