x

SignalWire Work is here. A complete office, school, or event venue right in your browser. Sign up for a 30-DAY FREE TRIAL or Learn more.

How to Send Text Messages to an Email Address

How to generate email output from SMS input

Kevin Garabedian | Stack Engineer

Jun 30, 2020

In one of the quickest snippets so far, Kevin Garabedian walks through some sample code and a Docker image that takes a regular SMS text message as the input and generates an email as the output!

Applications of this code could be as simple as a 'note to self' or as useful as a gateway for emailing certain people as part of a text-based advertising campaign.

As with Kevin's other snippets, you're getting fully commented working code that you are free to use however you choose!


Getting Started

You will need a machine with Python installed, the SignalWire SDK, a provisioned SignalWire phone number, and optionally Docker if you decide to run it in a container.

For this demo, we will be using Python, but more languages may become available.

  • Python
  • SignalWire SDK
  • SignalWire Phone Number
  • MailGun Account (For administrator notifications, https://www.mailgun.com/)
  • Docker (Optional)

Methods and Endpoints
Endpoint: /sms-webhook
Methods: GET OR POST
Endpoint to accept incoming text messages from SignalWire space and forward them to MailGun.

Setup Your Environment File

  1. Copy from example.env and fill in your values
  2. Save new file called .env

Your file should look something like this:

## This is the full name of your SignalWire Space. e.g.: example.signalwire.com
SIGNALWIRE_SPACE=
# Your Project ID - you can find it on the `API` page in your Dashboard.
SIGNALWIRE_PROJECT=
# Your API token - you can generate one on the `API` page in your Dashboard
SIGNALWIRE_TOKEN=
# The phone number you'll be using for this Snippets. Must include the `+1` , e$
SIGNALWIRE_NUMBER=
# MailGun domain associated with your MailGun account
MAILGUN_DOMAIN=
# MailGun token associated with your MailGun Account
MAILGUN_API_TOKEN=
# Send Email From Address
EMAIL_FROM=info@yourdomain.com
# Send email to address for administrator notifications
EMAIL_TO=youremail@yourdomain.com
# Email subject for admin notifications
EMAIL_SUBJECT=Forward Text To Email

Build and Run on Docker

Let's get started!

  • Use our pre-built image from Docker Hub:
For Python:
docker pull signalwire/snippets-text-to-email:python
  • Or build your own image:
    docker build -t snippets-text-to-email .
    • Run your image:
    docker run --publish 5000:5000 --env-file .env snippets-text-to-email
    • The application will run on port 5000

    Build and Run Natively

    For Python:

    1. Replace enviroment variables
    2. From command line run, python3 app.py

    More Documentation

    You can find more documentation on LaML, Relay, and all SignalWire APIs at:


    Support

    If you have any issues or want to engage further about this snippet, please open an issue on this repo or join our fantastic Slack community and chat with others in the SignalWire community!

    If you need assistance or support with your SignalWire services please file a support ticket from your Dashboard.