2010-04-09 8 views
1

J'ai un code python pour envoyer un message texte à votre téléphone portable en utilisant SMTP. quand je l'exécute, je ne reçois aucune erreur, mais il n'envoie pas le message. Mon code n'est pas terminé, en ce moment je ne fais que faire les bases. Toute aide pour le faire envoyer serait appréciée.smtp text message code ne pas envoyer

#infile = open('companyname.txt', 'r') 

import sys 
import smtplib 





li_name = ["3 RIVER WIRELESS", 
"ACS WIRELESS", 
"ADVANTAGE COMMUNICATIONS", 
"AIRTOUCH PAGERS", 
"ALPHNOW", 
"ALLTEL", 
"ALLTELL PCS", 
"AMERITECH PAGING", 
"AMERITECH MESSAGING", 
"AMERITECH CLEARPATH", 
"ARCH PAGERS", 
"AT&T", 
"AT&T FREE2GO", 
"AT&T PCS", 
"AT&T POCKETNET PCS", 
"BELL MOBILITY", 
"BELL SOUTH BLACKBERRY", 
"BELL SOUTH MOBILITY", 
"BOOST", 
"CELLULAR ONE EAST COAST", 
"CELLULAR ONE SOUTH WEST", 
"CELLULAR ONE PCS", 
"CELLULAR ONE", 
"CELLULAR ONE WEST", 
"CELLULAR SOUTH", 
"CENTENNIAL WIRELESS", 
"CINGULAR", 
"CINGULAR WIRELESS", 
"COMCAST", 
"HOUSTON CELLULAR", 
"ILLINOIS VALLY CELLULAR", 
"NEXTELL", 
"SPRINT", 
"SPRINT PCS", 
"T-MOBILE", 
"TRACFONE", 
"VERIZON PAGERS", 
"VERIZON", 
"VIRGIN MOBILE", 
"VIRGIN MOBILE CANADA"] 
li_num = ["@sms.3rivers.net", 
"@paging.acswireless.com", 
"@advantagepaging.com", 
"@alphapage.airtouch.com", 
"@alphanow.net", 
"@message.alltel.com", 
"@message.alltel.com", 
"@paging.acswireless.com", 
"@page.americanmessaging.net", 
"@clearpath.acswireless.com", 
"@archwireless.net", 
"@txt.att.net", 
"@mmode.com", 
"@mobile.att.net", 
"@dpcs.mobile.att.net", 
"@txt.bellmobility.ca", 
"@bellsouthtips.com", 
"@blsdcs.net", 
"@myboostmobile.com", 
"@phone.cellone.net", 
"@swmsg.com", 
"@paging.cellone-sf.com", 
"@mobile.celloneusa.com", 
"@mycellone.com", 
"@csouth1.com", 
"@cwemail.com", 
"@mycingular.com", 
"@mycingular.textmsg.com", 
"@comcastpcs.textmsg.com", 
"@text.houstoncellular.net", 
"@ivctext.com", 
"@messaging.nextel.com", 
"@sprintpaging.com", 
"@messaging.sprintpcs.com", 
"@tmomail.net", 
"@txt.att.net", 
"@myairmail.com", 
"@vtext.com", 
"@vmobl.com", 
"@vmobile.ca"] 

again = 'y' 
while again == 'y': 

    company_domain = '' 
    usr_company = str.upper(raw_input("Enter company: ")) 
    if usr_company in li_name: 
     idx = li_name.index(usr_company) 
     company_domain = li_num[idx] 
     usr_number = raw_input("Enter phone number: ") 
     text_adr = usr_number + company_domain 
     sender = raw_input('enter "from" E-Mail address: ') 
     #if smtplib.SMTPSenderRefused(SMTPResponseException): 
      #print ('your email has been rejected by the server')   
     reciever = text_adr 
     message = ('Testing') 
     smtpObj = smtplib.SMTP('smtp.comcast.net')   
     smtpObj.sendmail(sender,reciever , message) 
     print "Successfully sent email" 
     smtpObj.quit() 



    else: 
     text_adr = "Company Not Found" 

    print ("your phone's email is:") 
    print text_adr 
    again = raw_input('Do you want to ask again?') 
    while again != 'y' and again != 'n': 
     print ('sorry that is an invalid answer!') 
     again = raw_input('Do you want to ask again?') 
    print 



#old code: 

#addr_from = raw_input ('enter your email address') 
#addr_to = text_adr 
#SMTP = 'smtp.comcast.net' 
#msg = ('From: %s\r\nTo: %s\r\n\r\n' 
#% (addr_from, ', '.join(addr_to))) 
#msg = msg + 'This is the message' 
#SMTP.sendmail(addr_from, addr_to, msg) 

Répondre

1

Commencez par les bases, activez le débogage pour l'objet SMTP et voyez ce que vous obtenez.

smtpObj = smtplib.SMTP('smtp.comcast.net')   
smtpObj.set_debuglevel(10) 
smtpObj.sendmail(sender,reciever , message) 

Vous pouvez read about the set_debuglevel call here.

+0

après avoir utilisé les deux du code de vous les gars, il dit ceci, cela est seulement une partie de celui-ci, parce qu'il ne me laisserait pas mettez le sur le commentaire: envoyez: 'ehlo [192.168.1.100] \ r \ n' réponse: '250-omta09.westchester.pa.mail.comcast.net bonjour [76.107.170.219], heureux de vous rencontrer \ r \ n 'envoyer:' données \ r \ n 'répondre:' 354 entrer le courrier, fin avec "." sur une ligne par elle-même \ r \ n 'reply: retcode (354); Msg: entrez le courrier, terminez par "." sur une ligne par lui-même données: (250, '2.0.0 3X7V1e00D4kMwMY3VX7V8L courrier accepté pour la livraison') – justin

+0

Eh bien, cette dernière partie dit qu'il a pris votre message (le 250 ...) et tentera de le livrer. Vous êtes sûr que vous avez trié correctement les données de/à/de /? Je sais que cela peut être fait, j'ai mis en place une bibliothèque python pour Nagios à un travail précédent pour faire similaire; envoyer des messages électroniques au personnel de soutien sur appel. – AlG

+0

maintenant comment j'écrirais cette réponse à un fichier txt? – justin

1

changement

smtpObj.sendmail(sender,reciever , message) 

à

smtpObj.sendmail(sender,[reciever] , message) 

depuis le deuxième argument sendmail devrait être une liste d'adresses e-mail.

PS: Vous pouvez changer reciever à receiver aussi ... :)

Questions connexes