2017-04-10 4 views
14

Je veux être informer les gens par SMS lorsque certaines choses se produisent. On dirait que ça devrait être plutôt discret. Mais quand le SMS arrive il a l'expéditeur et la ligne d'objet dans le message, et je ne peux pas comprendre comment ajuster le message pour se débarasser de lui.Comment mettre en forme l'email à envoyer en tant que SMS

import smtplib 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 

message = MIMEMultipart() 
message['From'] = "[email protected]" 
message['To'] = "[email protected]" 
message['Subject'] = "FOOBAR!" 

text = "Hello, world!" 
message.attach(MIMEText(text.encode("utf-8"), "plain", "utf-8")) 

server = smtplib.SMTP("smtp.gmail.com", 587) 
server.starttls() 
server.login(message["From"], "SuperSecretString") 

server.sendmail(message["From"], [message["To"]], text) 

produit quelque chose comme:

[email protected]/FOOBAR!/ Hello, world!, et tout ce que je veux voir est Hello, world!

+3

Cela dépend vraiment du format pris en charge par votre messagerie vers la passerelle SMS, il n'y a pas de mappage standard défini entre e-mail et SMS. Je recommande personnellement d'abandonner les passerelles email-to-SMS et d'utiliser quelque chose comme Twilio qui offre des API JSON plus simples et plus cohérentes pour envoyer des SMS. –

+1

Ouais, j'ai fini par utiliser Twilio, mais c'est le principe de la chose maintenant. – Batman

Répondre

3

Après avoir fait un peu de recherche, il semble que l'utilisation de passerelles SMS pour envoyer des messages SMS est limite dans ce vous avez tellement de contrôle sur le format de votre texte.

Cependant, cette modification de la structure du texte envoyé des œuvres pour moi sur Sprint dans le format que vous voulez:

import smtplib 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 

message = MIMEMultipart() 
message['From'] = "[email protected]" 
message['To'] = "[email protected]" 
message['Subject'] = "FOOBAR!" 

text = ("From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" 
     % (message['From'], ", ".join(message['To']), message['Subject'])) 
text += "Hello World!\r\n" 

message.attach(MIMEText(text.encode("utf-8"), "plain", "utf-8")) 

server = smtplib.SMTP("smtp.zoho.com", 587) 
server.starttls() 
server.login(message["From"], "**********") 

server.sendmail(message["From"], [message["To"]], text) 

Notez que j'ai pris ce format de corps de message de this fil et adapté à votre cas .