smtplib.SMTPRecipientsRefused error on Python script - python

I have got this code:
import smtplib
import os
import time
import sys
import argparse
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
class smsGatewaying:
def login_gmail(self,user,password):
self.server = smtplib.SMTP("smtp.gmail.com", 587)
self.server.starttls()
try:
gmail_user = args.gmail_user
gmail_password = args.gmail_password
except SMTPAuthenticationError:
print "SMTP authentication went wrong. Most probably the server didn't accept the username/password combination provided."
finally:
if gmail_password < '1':
print 'Insert a password!'
gmail_password = getpass.getpass(prompt="Insert the GMail password: ")
else:
self.server.login(gmail_user, gmail_password)
print 'Login successfully.'
time.sleep(0.75)
x.select_country()
def select_country(self):
print 'Insert country: '
country = raw_input()
if country == 'Italy' or country == 'italy':
italian_carriers = ['number#sms.vodafone.it',
'39number#timnet.com']
select_carriers = raw_input("Select carriers: ")
if select_carriers == 'Vodafone' or select_carriers == 'vodafone':
number = 0
elif select_carriers == 'TIM' or select_carriers == 'tim' or select_carriers == 'Tim':
number = 1
else:
print "L'operatore telefonico selezionato non è disponibile."
time.sleep(0.80)
x.select_country()
x.send_message_normal(italian_carriers[number])
else:
sys.exit()
def send_message_normal(self, carriers):
msg = MIMEMultipart()
msg['sender'] = raw_input("Insert sender: ")
msg['telephone'] = input("Insert telephone number: ")
text = raw_input("Insert text: ")
msg.attach = (MIMEText(text))
carriers.replace('number',str(msg['telephone']))
final = raw_input("Are you sure?[Y/N] ")
if final == 'y' or final == 'Y':
self.server.sendmail(msg['sender'],str(msg['telephone']),text)
elif final == 'n' or final == 'N':
exit_ = raw_input("Do you want to exit?[Y/N] ")
if exit_ == 'Y' or exit_ == 'y':
print 'Run main script...'
newWorkingDirectory = '../BRES.py'
os.path.join(os.path.abspath(sys.path[0]), newWorkingDirectory)
os.system('python BRES.py')
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("gmail_user", type=str)
parser.add_argument("gmail_password",type=str)
args = parser.parse_args()
x = smsGatewaying()
print 'Welcome to SMS Gatewaying service! Multiple countries and multiple carriers are available.'
time.sleep(1)
x.login_gmail(args.gmail_user,args.gmail_password)
After the trying to send message to a number, I got this error on shell:
smtplib.SMTPRecipientsRefused: {'29403983292209': (553, "5.1.2 We
weren't able to find the recipient domain. Please check for any\n5.1.2
spelling errors, and make sure you didn't enter any spaces,
periods,\n5.1.2 or other punctuation after the recipient's email
address. a6sm58887940eei.10 - gsmtp")}
I tried all, but without solutions :(

Consider this line:
self.server.sendmail(msg['sender'],str(msg['telephone']),text)
What do you think the value of msg['telephone'] is at this point? Try printing out the value of each of the parameters to self.server.sendmail(). I believe that you will discover that msg[telephone] is the telephone number. It is not an email address.
Try using these two lines instead of the ones you have:
to = carriers.replace('number',str(msg['telephone']))
and
self.server.sendmail(msg['sender'],to,text)

After a lot of searching and crying... the error is ovoked by the email from where you are trying to send.
In my case this one was down, once changed by a functional one the mail came out as usual.
I made tests directly in console, changing the data by normal text and changing one by one until it came out.

Related

How to print weather information to the console in python

I'm currently creating a text based console program in python and I want to add a command to display the current weather using a zip code. I have tried googling it extensively and can't seem to find anything good. The solutions that would work for what I'm trying to do are all using technology I'm not familiar with that are used to make actual apps with python. There is currently no UI and I'm a beginner in python so the more readable and easily understandable the solution the better.
#import statements
import math#import math
import os#access the operating system
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
import os.path
import time
#end import statement
# welcome user
print("welcome to geeko an all in one desktop helper!")
#end welcome
#variables
username = input("Please enter your username: " )#gets username
sudo = False # sets sudo to false indicating normal privledges
if (username == "Caelin"): # if the user enters the sudo username prompt them for a password
sudoPassword = input("enter sudo password: ")# prompt for passcode
sudoLn = False #sets sudo line mode to false. this line mode is used for sudo commands
pi = math.pi
loc_id = 'USAL0504'
def wrongLineError():
if(sudoLn):
print("You are on the sudo line this is purely for special commands normal commands don't work here type \"switch\" to switch to cmd.ln")
elif(sudoLn == False and sudo == False):
print("You do not have sudo priviledges")
elif(sudoLn == False and sudo == True):
print("to use sudo commands you must be on the sudo line mode type \'switch\' to switch to the sudo line")
def sendEmailMessageOnly(message, password, recipient):
send_to_email = recipient # Who you are sending the message to
server = smtplib.SMTP('smtp.gmail.com', 587) # Connect to the server
server.starttls() # Use TLS
server.login(email, password) # Login to the email server
server.sendmail(email, send_to_email , message) # Send the email
server.quit() # Logout of the email server
def sendFormattedEmail(password, recipient, subject, message):
msg = MIMEMultipart()
msg['From'] = email
msg['To'] = recipient
msg['Subject'] = subject
msg.attach(MIMEText(message, 'plain'))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(email, password)
text = msg.as_string()
server.sendmail(email, recipient, text)
server.quit()
def sendMultipleFormattedEmails(password, recipients, subject, message):
for recipientEmail in recipients:
msg = MIMEMultipart()
msg['From'] = email
msg['To'] = recipientEmail
msg['Subject'] = subject
msg.attach(MIMEText(message, 'plain'))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(email, password)
text = msg.as_string()
server.sendmail(email, recipientEmail, text)
server.quit()
#end variables
print ("Hello " + username + "!")# say special welcome
#check if user is root if so alert them and give them sudo status else alert them and leave sudo at a default of false
if(username == "Caelin" and sudoPassword == "bigGlassRemote"):
print("Welcome! you are the root user and therefore have elevated priviledges")
email = input('please enter your email: ')
password = input("please enter your email password: ")
print('logging into email...')
time.sleep(1)
print("logged into email!")
sudo = True
else:
print("You are not the root user and have normal priviledges")
while(True): #run an infinite loop prompting the user for command line inputs
if(sudoLn == False):
command = input(username + "-cmd.ln: ") # if sudo line mode if off use the cmd.ln prompt
else:
command = input(username + "-cmd.sudo: ") # otherwise prompt with cmd.sudo to indicate you are using sudo line mode
if(command == 'welcome'):
if(sudoLn == False): # checks if you are on cmd line
print("Hello " + username) # if the welcome command is used say hello *username*
else: # if you are the sudo line
wrongLineError()
elif(command == "switch"): # if the command is switch
if(sudo): # then check for sudo priviledges
# togles sudoLn
if(sudoLn):
sudoLn = False
else:
sudoLn = True
else:
wrongLineError()
elif(command == 'add'):
if(sudoLn == False):
num1 = input("type the first number to add here: ")
num2 = input("type the second number to add here: ")
ans = float(num1) + float(num2)
if(ans == round(ans)):
print(int(ans))
else:
print(ans)
else:
wrongLineError()
elif(command == 'subtract'):
if(sudoLn == False):
num1 = input("type the first number to subtract here: ")
num2 = input("type the second number to subtract here: ")
ans = float(num1) - float(num2)
if(ans == round(ans)):
print(int(ans))
else:
print(ans)
else:
wrongLineError()
elif(command == "multiply"):
if(sudoLn == False):
num1 = input("type the first number to multiply here: ")
num2 = input("type the second number to multiply here: ")
ans = float(num1) * float(num2)
if(ans == round(ans)):
print(int(ans))
else:
print(ans)
else:
wrongLineError()
elif(command == "divide"):
if(sudoLn == False):
num1 = input("type the first number to divide here: ")
num2 = input("type the second number to divide here: ")
ans = float(num1)/float(num2)
if(ans == round(ans)):
print(int(ans))
else:
print(ans)
else:
wrongLineError()
elif(command == "area of circle"):
if(sudoLn == False):
r = input("type the radius here: ")
ans = pi*(float(r)**2)
if(ans == round(ans)):
print(int(ans))
else:
print(ans)
else:
wrongLineError()
elif(command == "area of rectangle"):
if(sudoLn == False):
l = input("type the length here: ")
h = input("type the width here: ")
ans = float(l)*float(h)
if(ans == round(ans)):
print(int(ans))
else:
print(ans)
else:
wrongLineError()
elif(command == "area of triangle"):
l = input("type the length here: ")
h = input ("type the height here: ")
ans = (float(l) * float(h))/2
if(ans == round(ans)):
print(int(ans))
else :
print(ans)
elif(command == 'pi'):
if(sudoln):
print(pi)
else:
wrongLineError()
elif(command == "edit file anywhere"):
if(sudoLn):
path = input("enter the path to the file (if the file doesen't exist it will be created): ")
file = open(path, "w+")
Exit = False
while(not Exit):
write = input("type what you would like to be written on the document. type !#exit to return to the the command line: ")
if(write == "!#exit"):
file.close()
Exit = True
else:
file.write(write)
else:
wrongLineError()
elif(command == "delete file anywhere"):
if(sudoLn):
path = input("enter the path to the file you wish to delete: ")
os.remove(path)
print(path + "has been removed")
else:
wrongLineError()
elif(command == 'send unformatted email'):
if(sudoLn):
recipient = input('enter the recipient\'s email address: ')
msg = input("enter the content of the email: ")
print('Sending email...')
sendEmailMessageOnly(msg, password, recipient)
print('Email sent!')
else:
wrongLineError()
elif(command == "send formatted email"):
if(sudoLn):
subject = input('enter the subject line: ')
recipient = input('enter the recipient\'s email address. type multiple to send an email to multiple recipients: ')
if(recipient == 'multiple'):
sendMultiple = True
repeat = True
i = 1
recipient = []
while(repeat):
newRecipient = input('recipient%s\'s email address. type !#continue to continue to select a message and send the email: ' % i)
if(newRecipient == '!#continue'):
repeat = False
else:
recipient.append(newRecipient)
i += 1
message = input("enter the content of the email: ")
print('Sending email...')
if(not sendMultiple):
sendFormattedEmail(password, recipient, subject, message)
else:
sendMultipleFormattedEmails(password, recipient, subject, message)
print("Email sent!")
else:
wrongLineError()
elif(command == "help"):
if(sudoLn):
print(username + """-sudo.ln command help:
>>edit file anywhere > input(s): path > Takes a file path and edits that file.
If the file doesn't already exist it is created.
If you wish to edit a file in the same location as geeko simply enter the name and leave out the path.
>>delete file anywhere > input(s): path > Takes a file path and deletes the file with that path.
If you wish to delete a file in the same location as geeko simply enter the name and leave out the path.
>>send unformatted email > input(s): recipient, message > Sends an email to the recipient containing the message you entered.
>> send formatted email > input(s): recipient, subject line, message > Sends an email to the recipient with the entered subject line and message.
This also enters To and From information into the email.
>>help > no inputs > Shows this help message.
A different message is shown for cmd.ln and sudo.ln.
>>close > input(s): confirmation > If confirmed exits out of geeko.
END %s-sudo.ln HELP""" % username)
else:
print(username + """-cmd.ln command help:
>>add > input(s): first number, second number > Adds two numbers together.
>>subtract > input(s): first number, second number > Subtracts the second number from the first number.
>>multiply > input(s): first number, second number > Multiplies the two numbers together.
>>divide > input(s): first number, second number > Divides the first number by the second number.
>>area of rectangle > input(s): length, width > Calculates the area of a rectangle with the given length and width.
>>area of triangle > input(s): length, height > Calculates the area of a triangle with the given length and height.
>>area of circle > input(s): radius > Calculates the area of a triangle with the given radius.
>>pi > no inputs > Prints the first 16 digits of pi
>>welcome > no inputs > Gives you a special welcome.
>>print reversed sentence > input(s): sentence > Prints the sentence backwards.
>>help > no inputs > Shows this help message.
The help message is different in cmd.ln and sudo.ln.
>>close > input(s): confirmation > If confirmed exits out of geeko.
END %s-cmd.ln HELP""" % username )
elif(command == 'print reversed sentence'):
sentence = input("enter the senctence you want to reverse: ")
sentence = sentence[::-1]
print(sentence)
elif(command == 'weather'):
get_weather(loc_id)
elif(command == "close"):
confirmedOrDenied = False
while(not confirmedOrDenied):
confirmation = input("are you sure you want to close geeko [Y/N]: ")
if(confirmation == 'y' or confirmation == 'Y'):
exit()
elif(confirmation == 'n' or confirmation == 'N'):
confirmedOrDenied = True
print("cancelled")
else:
print('invalid response please enter Y or N')
else:
print(command + ' is not a valid command make sure everything is spelled correctly') # if no registered command was entered return invalid command
There are 2 main ways to do this.
The first one is to webscrape, using requests and beautifulsoup4. This can most easily be done from google, since if you search "weather {city-name}" it gives you a summary of the weather there.
The second is to use an api such as openweathermap, for which there is a great geeksforgeeks tutorial on:

Password - Login not working Python

I just finished Coursera's Python for Everybody 1st course.
To practice my skills, I decided to make a password and username login. Whenever I create a username, I get my user set error which says 'Invalid credentials'. Here is my code.
import time
import datetime
print ('storingData')
print("Current date and time: ", datetime.datetime.now())
while True:
usernames = ['Admin']
passwords = ['Admin']
username = input ('Please enter your username, to create one, type in create: ')
if username == 'create':
newname = input('Enter your chosen username: ')
usernames.append(newname)
newpassword = input('Please the password you would like to use: ' )
passwords.append(newpassword)
print ('Temporary account created')
continue
elif username in usernames :
dataNum = usernames.index (username)
cpasscode = passwords[dataNum]
else:
print ('Wrong credentials, please try again')
continue
password = input ('Please enter your password: ')
if password == cpasscode:
print ('Welcome ', username)
The code as it appears in my editor
In your code, you have initialized your usernames array right after the while statement. This means that every time it loops back to the beginning, it re-initializes, losing anything that your previously appended. If you move the array initialization outside of the loop, it should work as expected.
This works for python 3. for python 2 you must take input differently refer: Python 2.7 getting user input and manipulating as string without quotations
import time
import datetime
names = ['Admin']
pwds = ['Admin']
while True:
name = input('Name/create: ')
if name == "create":
name = input('New Name: ')
pwd = input('New Pwd : ')
names.append(name)
pwds.append(pwd)
continue
elif name in names:
curpwdindex = names.index(name)
print(names)
curpwd = pwds[curpwdindex]
givenpwd = input('Password: ')
if givenpwd == curpwd:
print("Welcome")
break
else:
print("Inavlid Credential")
else:
print("Wrong Choice")
continue

How can I make a basic program that allows someone to sign in to an account previously created?

I am trying to make a python program that will allow a user to sign up or sign in, and I am currently doing so by creating a file that stores every username and its password. Right now, it is not writing to the file, and I was wondering if anyone could tell me what I'm doing wrong. Please forgive me if it is a stupid error, I am not very experienced with python, but I can still make a basic program. This is my code:
# -*- coding: utf-8 -*-
from time import sleep
def signin():
usrlist = open("users.txt", 'w+')
complete = False
while (complete == False):
usr = raw_input("Username: ")
pwd = raw_input("Password: ")
usrinfo = (usr + ":" + pwd)
if (usrinfo in usrlist.read()):
print("Welcome back " + usr + ".")
complete = True
else:
print("Username or Password incorrect. Please try again.")
def signup():
usrlist = open("users.txt", 'w+')
usravailable = False
while (usravailable == False):
newusr = raw_input("Please choose a Username: ")
if (newusr in usrlist.read()):
print("Username taken. Please choose again.")
else:
usravailable = True
newpwd = raw_input("Please choose a password: ")
oldusrlist = usrlist.read()
usrlist.write(oldusrlist + newusr + ":" + newpwd + ".")
print("Thank You. Please Sign in.")
signin()
print("Please Choose An Option:")
print("1. Sign In")
print("2. Sign Up")
inorup = input()
if (inorup == 1):
signin()
elif (inorup == 2):
signup()
Also, if you have any suggestions about how I could do this differently, or better(even if it's using a different language) Thank you and I appreciate your help.
EDIT:
If anyone can give me information on doing a program like this either using JSON, javascript, or multiple files that can store larger amounts of data about each account, please tell me how in the comments or an answer. I appreciate the help.
To fix your not saving issue, you need to do two changes:
1) in your signin() routine, change the line 'usrlist = open("users.txt", 'w+')' into 'usrlist = open("users.txt", 'r')
2) in your singup() routine, after the line 'usrlist.write(oldusrlist + newusr + ":" + newpwd + ".")', add: 'usrlist.close()'
Then you should be able to see the stuff got saved.
here is a way to use json
import json
import os
FILENAME = "./f.json"
# init the data file
def init_data():
with open(FILENAME, "wb") as f:
json.dump({}, f)
def load_content():
with open(FILENAME) as f:
infos = json.load(f)
return infos
def save_content(content):
with open(FILENAME, "w+") as f:
json.dump(content, f)
return True
def save_info(username, password):
infos = load_content()
if username in infos:
return False
infos[username] = password
save_content(infos)
return True
def sign_in(username, password,):
status = save_info(username, password)
if not status:
print "username exists"
def login(username, password):
infos = load_content()
if username in infos:
if password == infos[username]:
print "login success"
return True
else:
print "password wrong"
return False
else:
print "no user named %s" %username
if __name__ == "__main__":
# here is some simple test
os.system("rm -f %s" %FILENAME)
if not os.path.exists(FILENAME):
init_data()
# login fail
login("hello","world")
# sign_in
sign_in("hello", "world")
# login success
login("hello","world")
# sign_in fail
sign_in("hello", "world")
# login fail
login("hello", "hello")

Returning to 'main menu' for mini email program

So for practice, I tried writing a simple program to read/write emails from the terminal/python shell. My problem is that whenever I try entering an invalid response, it ends the program rather than returning to the 'main menu,' so to speak. Same problem for when I try to give the option of quitting the program and asking the user to confirm that they want to exit. This is my code:
import smtplib
import imaplib
import email
print 'Welcome to NhuMail'
print '\n \nPlease enter your login information: \n'
user = raw_input('Email User:')
pw = raw_input("Password:")
def check_mail(user, pw):
# Login to INBOX
imap = imaplib.IMAP4_SSL("imap.gmail.com", 993)
imap.login(user, pw)
imap.select('INBOX')
# Use search(), not status()
status, response = imap.search('INBOX', '(UNSEEN)')
unread_msg_nums = response[0].split()
# Print the count of all unread messages
print '\n\nYou have %s unread messages.' % (len(unread_msg_nums))
def read_mail():
imap = imaplib.IMAP4_SSL("imap.gmail.com", 993)
imap.login(user, pw)
imap.list()
imap.select("inbox")
status, response = imap.search('INBOX', '(UNSEEN)')
unread_msg_nums = response[0].split()
result, data = imap.uid('search', None, "ALL") # search and return uids instead
latest_email_uid = data[0].split()[-1]
result, data = imap.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = data[0][1]
email_message = email.message_from_string(raw_email)
print email_message['To']
print email.utils.parseaddr(email_message['From']) # for parsing "Yuji Tomita" <yuji#grovemade.com>
email_items = email_message.items()
# print all headers
print email_items[1]
print email_items[2]
print email_items[5]
print '\n'
b = email.message_from_string(raw_email)
if b.is_multipart():
for payload in b.get_payload():
# if payload.is_multipart(): ...
print payload.get_payload()
else:
print b.get_payload()
def new_mail():
from_add = user
to_add = raw_input('Enter TO address:')
msg = raw_input('Enter desired message:')
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(user,pw)
server.sendmail(from_add,to_add,msg)
def exit_mail():
confirm_exit = raw_input('Are you sure you want to exit? (Yes/No):')
server = smtplib.SMTP('smtp.gmail.com:587')
if confirm_exit == 'Yes':
server.quit()
print 'Nice Nhu-ing you! Come again soon :)'
elif confirm_exit == 'No':
return prompt
def mail_options():
prompt = raw_input('Say \'Nhu\' to compose a message \nOR \nSay \'Read\' to read unread message \nOR \nSay \'Escape\' to exit NhuMail: \n')
while True:
if prompt == 'Nhu':
new_mail()
return prompt
elif prompt == 'Read':
read_mail()
return prompt
elif prompt == 'Escape':
exit_mail()
break
else:
print 'You didn\'t enter one of the options!'
return prompt
check_mail(user,pw)
mail_options()
It looks like you want to keep calling mail_options(). You can do this with an infinite loop:
while True:
mail_options()
You could also put the loop inside mail_options():
def mail_options():
while True:
prompt = raw_input('Say \'Nhu\' to compose a message \nOR \nSay \'Read\' to read unread message \nOR \nSay \'Escape\' to exit NhuMail: \n')
while True:
if prompt == 'Nhu':
new_mail()
elif prompt == 'Read':
read_mail()
elif prompt == 'Escape':
exit_mail()
break
else:
print 'You didn\'t enter one of the options!'
Try changing your mail_options() to this:
def mail_options():
while True:
prompt = raw_input('Say \'Nhu\' to compose a message \nOR \nSay \'Read\' to read unread message \nOR \nSay \'Escape\' to exit NhuMail: \n')
if prompt == 'Nhu':
new_mail()
elif prompt == 'Read':
read_mail()
elif prompt == 'Escape':
exit_mail()
break
else:
print 'You didn\'t enter one of the options!'
You present the prompt once and then as soon as you get their result, you return what they said after running the specified function, and then because you use a return keyword, it breaks out of the loop and function and exits the program.
The issue in your program lies in mail_options(). You have an infinite loop, that can only run a single time, and then exits every time time due to the use of a return statement. Make an infinite loop to continuously show mail_options(), and it should fix your issue. You're only calling it once, which is why it exits.
You can do:
while True:
mail_options()
Another option would be asking the prompt inside the loop, and ridding the function of return statements.
def mail_options():
while True:
prompt = raw_input('Say \'Nhu\' to compose a message \nOR \nSay \'Read\' to read unread message \nOR \nSay \'Escape\' to exit NhuMail: \n')
if prompt == 'Nhu':
new_mail()
elif prompt == 'Read':
read_mail()
elif prompt == 'Escape':
exit_mail()
return # Get out of the function.
else:
print 'You didn\'t enter one of the options!'

smtplib doesn't send mail

I wrote this script for sending email to phones using SMTP protocol and GMail services. But It doesn't work because when the message is sended, the recipient is null. Why? Where are the problem?
Python code:
import smtplib
import os
import time
import sys
import argparse
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
class smsGatewaying:
def login_gmail(self,user,password):
debuglevel = 0
self.server = smtplib.SMTP("smtp.gmail.com", 587)
self.server.starttls()
self.server.set_debuglevel(False)
self.gmail_user = args.gmail_user
gmail_password = args.gmail_password
if len(gmail_password) < 1:
print 'Insert a password!'
gmail_password = getpass.getpass(prompt="Insert the GMail password: ")
else:
self.server.login(self.gmail_user, gmail_password)
print 'Login successfully.'
time.sleep(0.75)
sms.select_country()
def select_country(self):
print 'Insert country: '
country = raw_input()
################# COUNTRY #################
if country == 'Italy' or country == 'italy':
################# CARRIERS #################
italian_carriers = ['number#sms.vodafone.it',
'39number#timnet.com'] #0 VODAFONE 1 TIM
select_carriers = raw_input("Select carriers: ")
if select_carriers == 'Vodafone' or select_carriers == 'vodafone':
number = 0
elif select_carriers == 'TIM' or select_carriers == 'tim' or select_carriers == 'Tim':
number = 1
else:
print "L'operatore telefonico selezionato non è disponibile."
time.sleep(0.80)
sms.select_country()
sms.send_message_normal(italian_carriers[number])
else:
sys.exit()
def send_message_normal(self, carriers):
msg = MIMEMultipart()
msg['telephone'] = input("Insert telephone number: ")
text = raw_input("Insert text: ")
msg.attach = (MIMEText(text))
sender = self.gmail_user
to = carriers.replace('number',str(msg['telephone']))
to_list = [to]
print to
print to_list
final = raw_input("Are you sure?[Y/N] ")
if final == 'y' or final == 'Y':
try:
self.server.sendmail(sender,to,text)
except SMTPException:
print 'Unable to send.'
time.sleep(0.75)
sms.select_country()
elif final == 'n' or final == 'N':
exit_ = raw_input("Do you want to exit?[Y/N] ")
if exit_ == 'Y' or exit_ == 'y':
print 'Run main script...'
newWorkingDirectory = '../BRES.py'
os.path.join(os.path.abspath(sys.path[0]), newWorkingDirectory)
os.system('python BRES.py')
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("gmail_user", type=str)
parser.add_argument("gmail_password",type=str)
args = parser.parse_args()
sms = smsGatewaying()
os.system('clear')
print 'Welcome to SMS Gatewaying service! Multiple countries and multiple carriers are available.'
print ''
time.sleep(1)
sms.login_gmail(args.gmail_user,args.gmail_password)

Categories

Resources