One robust way of accomplishing what you need is to use a Python web framework, Flask (http://flask.pocoo.org/). There are Youtube videos that do a good job of explaining Flask basics (https://www.youtube.com/watch?v=ZVGwqnjOKjk).
Here's an example from my motion detector that texts me when my cat is waiting by the door. All that needs to be done to trigger this code is for an HTTP request at the address (in my case) http://192.168.1.112:5000/cat_detected
from flask import Flask
import smtplib
import time
def email(from_address, to_address, email_subject, email_message):
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(username, password)
# For character type new-lines, change the header to read: "Content-Type: text/plain". Use the double \r\n.
# For HTML style tags for your new-lines, change the header to read: "Content-Type: text/html". Use line-breaks <br>.
headers = "\r\n".join(["from: " + from_address, "subject: " + email_subject,
"to: " + to_address,
"mime-version: 1.0",
"content-type: text/plain"])
message = headers + '\r\n' + email_message
server.sendmail(from_address, to_address, message)
server.quit()
return time.strftime('%Y-%m-%d, %H:%M:%S')
app = Flask(__name__)
@app.route('/cat_detected', methods=['GET'])
def cat_detected():
fromaddr = 'CAT ALERT'
admin_addrs_list = [['YourPhoneNumber@tmomail.net', 'Mark']] # Use your carrier's format for sending text messages via email.
for y in admin_addrs_list:
email(fromaddr, y[0], 'CAT ALERT', 'Carbon life-form standing by the door.')
print('Email on its way!', time.strftime('%Y-%m-%d, %H:%M:%S'))
return 'Email Sent!'
if __name__ == '__main__':
username = 'yourGmailUserName@gmail.com'
password = 'yourGmailPassword'
app.run(host='0.0.0.0', threaded=True)