Python 3 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 Python 3 applications on App Engine.
Mailgun provides both RESTful APIs and client libraries for sending email, along with a free quota for Cloud project users. See the monthly pricing calculator on the sign up page for pricing on additional messages and volume discounts.
Learn more about Mailgun:
Learn more about Mailjet:
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 take advantage of a free quota 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.
Learn more about SendGrid:
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.
Learn more about Twilio:
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 as a dependency.
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
env_variables: EMAIL_API_KEY: key-from-third-party
In your app's code, retrieve the key from your environment variables. For example:
EMAIL_API_KEY = os.environ['EMAIL_API_KEY']
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
Firestore in Datastore mode (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