【问题标题】:How To Format Email to Send as SMS如何格式化电子邮件以作为 SMS 发送
【发布时间】:2017-09-04 22:16:15
【问题描述】:

我想在某些事情发生时通过短信通知人们。似乎它应该非常直截了当。但是当 SMS 到达时,它在消息中有发件人和主题行,我不知道如何调整消息以摆脱它。

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)

产生类似的东西:

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

【问题讨论】:

  • 这实际上取决于您的电子邮件到 SMS 网关支持的格式,电子邮件和 SMS 之间没有定义标准映射。我个人建议放弃电子邮件到短信的网关,并使用 Twilio 之类的东西,它提供更简单、更一致的 JSON API 来发送短信。
  • 是的,我最终使用了 Twilio,但这是现在的原理。

标签: python python-3.x sms mime mime-message


【解决方案1】:

经过一番研究,似乎使用 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)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 2014-06-22
    相关资源
    最近更新 更多