Send SMS Texts using Python and @Textlocal

Last week I put out a tweet to say how I helped a Karate Club send a batch of messages to all the students from a few lines of Python and a Textlocal account.

The good news for this is you can run this from your desktop or from your iOS device, I am sure it would work with Android as well if you have a Python interpreter and can store your sqlite database on there.  Perhaps I should try this on my tablets, anyway I am being side tracked.

I have had a Textlocal account for a while, I use it to send people a Birthday message nice and early in the morning, I can then follow it up later, but they know I was thinking of them.

It works in exactly the same way, the code does a simple select then for each line it finds send the message out to the number, keep looping through until you have sent them all.  It also shows the names and numbers to the screen and also writes out to a log file.

You can see the code below, but I will also put it up on my Github site

# Script Name	: hkc_text.py
# Author	: Craig Richards
# Created	: 16th February 2017
# Last Modified	: 
# Version	: 1.0

# Modifications	: 

# Description	: This will text all the students Karate Club

import urllib      # URL functions
import urllib2     # URL functions
import os
from time import strftime
import sqlite3
import sys

dropbox= os.getenv("dropbox")
scripts=os.getenv("scripts")
dbfile=("database/maindatabase.db")
master_db=os.path.join(dropbox, dbfile)

f=open(scripts+'/output/student.txt','a')

tdate=strftime("%d-%m")

conn = sqlite3.connect(master_db)
cursor = conn.cursor()
loc_stmt='SELECT name, number from table'
cursor.execute(loc_stmt)
while True:							
  row = cursor.fetchone()	
  if row == None:
    break
  sname=row[0]
  snumber=row[1]

  message = (sname + ' There will be NO training tonight on the ' + tdate + ' Sorry for the late notice, I have sent a mail as well, just trying to reach everyone, please do not reply to this message as this is automated')

  username = 'YOUR_USERNAME'
  sender = 'WHO_IS_SENDING_THE_MAIL'

  hash = 'YOUR HASH YOU GET FROM YOUR ACCOUNT'

  numbers = (snumber)

# Set flag to 1 to simulate sending, this saves your credits while you are testing your code. # To send real message set this flag to 0
  test_flag = 0

#-----------------------------------
# No need to edit anything below this line
#-----------------------------------

  values = {'test'    : test_flag,
          'uname'   : username,
          'hash'    : hash,
          'message' : message,
          'from'    : sender,
          'selectednums' : numbers }

  url = 'http://www.txtlocal.com/sendsmspost.php'

  postdata = urllib.urlencode(values)
  req = urllib2.Request(url, postdata)

  print ('Attempting to send SMS to '+ sname + ' at ' + snumber + ' on ' + tdate)
  f.write ('Attempting to send SMS to '+ sname + ' at ' + snumber + ' on ' + tdate + '\n')

  try:
    response = urllib2.urlopen(req)
    response_url = response.geturl()
    if response_url==url:
      print 'SMS sent!'
  except urllib2.URLError, e:
    print 'Send failed!'
    print e.reason

I hope you will find this useful, and you can easily adapt this to how you want to use it.  If I can be any help then please feel free to get in touch.  If you are thinking of opening a Textlocal account, if you use the link I have then you will receive a welcome gift of 250 free credits and three months of our Corporate Package which is worth over £120, not bad just from using my link, beneficial to everyone.

I can help if required to set up your database, carry out the data entry and write the code for you, all for a small fee, again if this is of interest for you then please get in contact.

I am always interested in your thoughts so if you have any comments or feedback then please feel free to add any comments, or you can mail me  here.

Related Posts Plugin for WordPress, Blogger... 

 

Securing Your Data Is More Important Than Ever Before

D-Link Apple home kit enabled Camera