如何格式化电子邮件以发送为SMS

Bat*_*man 14 python sms mime python-3.x mime-message

我希望在某些事情发生时通过短信通知人们.好像它应该是相当直接的.但是当短信到达时,它在消息中有发送者和主题行,我无法弄清楚如何调整消息以摆脱它.

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

message = MIMEMultipart()
message['From'] = "xyz@gmail.com"
message['To'] = "5551234567@tmomail.net"
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)
Run Code Online (Sandbox Code Playgroud)

产生类似的东西:

xyz@gmail.com / FOOBAR!/ Hello, world!,我想看到的只是 Hello, world!

小智 3

经过一些研究后,似乎使用 SMS 网关发送 SMS 消息有局限性,因为您对文本格式的控制有限。

然而,对发送的文本结构的这种修改对我来说在 Sprint 上以您想要的格式有效:

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

message = MIMEMultipart()
message['From'] = "myemail@pensivepost.com"
message['To'] = "1234567@messaging.sprintpcs.com"
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)
Run Code Online (Sandbox Code Playgroud)

请注意,我从线程中获取了此消息正文格式,并根据您的情况进行了调整。