Как отформатировать электронную почту для отправки в виде SMS

Я хочу уведомлять людей через SMS, когда происходят определенные вещи. Похоже, это должно быть довольно странно. Но когда приходит 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)

Производит что-то вроде:

[email protected] / FOOBAR!/ Hello, world!, и все, что я хочу увидеть, это Hello, world!

Ответ 1

После небольшого исследования кажется, что использование SMS-шлюзов для отправки SMS-сообщений ограничено тем, что вы только контролируете формат своего текста.

Однако эта модификация структуры отправляемого текста работает для меня в Sprint в нужном формате:

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)

Обратите внимание, что я принял этот формат тела сообщения из этого потока и адаптировал его к вашему делу.