如何使用Python通过电子邮件发送短消息

作者 | Alfredo Sequeida译者 | 弯月
出品 | CSDN(ID:CSDNnews)
首先 , 我们来熟悉一些相关的概念 。 SMS(Short Messaging Service , 短消息服务)就是文本消息 , 上限是 160 个字符 , 通过移动网络发送 。 MMS(Multimedia Messaging Service , 多媒体消息服务)与文本消息基本相同 , 只不过嵌入了图像、视频或 PDF 文件等多媒体 , 我也是最近才知道我们可以通过文本消息发送这些多媒体 。 为了发送免费的文本消息 , 我们将使用 SMS 网关 , 但这些网关只是中转服务器 , 可通过移动网络将消息传递到手机 。
如何使用Python通过电子邮件发送短消息
文章图片

发送短信
Twilio等解决方案允许你使用他们的 API , 通过编程发送文本消息 , 但需要收费 。 本文使用的 SMS 和 MMS 网关是免费的 , 因为我们可以通过电子邮件与它们交互 。 换句话说 , 这些网关是由移动提供商架设的 , 允许我们以电子邮件消息的形式发送文本消息 , 然后通过 SMS 或 MMS 将消息转发到手机 。
下面的列表汇总了美国境内电话提供商的 SMS 和 MMS 电子邮件域名 , 仅供参考:

providers.pyPROVIDERS = { "AT&T": { "sms": "txt.att.net", "mms": "mms.att.net", "mms_support": True}, "Boost Mobile": { "sms": "sms.myboostmobile.com", "mms": "myboostmobile.com", "mms_support": True, }, "C-Spire": { "sms": "cspire1.com", "mms_support": False}, "Cricket Wireless": { "sms": "sms.cricketwireless.net ", "mms": "mms.cricketwireless.net", "mms_support": True, }, "Consumer Cellular": { "sms": "mailmymobile.net", "mms_support": False}, "Google Project Fi": { "sms": "msg.fi.google.com", "mms_support": True}, "Metro PCS": { "sms": "mymetropcs.com", "mms_support": True}, "Mint Mobile": { "sms": "mailmymobile.net", "mms_support": False}, "Page Plus": { "sms": "vtext.com", "mms": "mypixmessages.com", "mms_support": True, }, "Republic Wireless": { "sms": "text.republicwireless.com", "mms_support": False, }, "Sprint": { "sms": "messaging.sprintpcs.com", "mms": "pm.sprint.com", "mms_support": True, }, "Straight Talk": { "sms": "vtext.com", "mms": "mypixmessages.com", "mms_support": True, }, "T-Mobile": { "sms": "tmomail.net", "mms_support": True}, "Ting": { "sms": "message.ting.com", "mms_support": False}, "Tracfone": { "sms": "", "mms": "mmst5.tracfone.com", "mms_support": True}, "U.S. Cellular": { "sms": "email.uscc.net", "mms": "mms.uscc.net", "mms_support": True, }, "Verizon": { "sms": "vtext.com", "mms": "vzwpix.com", "mms_support": True}, "Virgin Mobile": { "sms": "vmobl.com", "mms": "vmpix.com", "mms_support": True, }, "Xfinity Mobile": { "sms": "vtext.com", "mms": "mypixmessages.com", "mms_support": True, },}另外 , 最近我发现了一个网站 , 其中包含多个国家/地区的 SMS 网关:https://email2sms.info/ 。
简单地解释一下 , 本文中的例子使用的是美国电话号码 , 一共10个数字 。 我们可以采用如下形式:电话号码@网管域名(number@gateway-domain.com) 。
除了移动提供商提供 SMS 或 MMS 的电子邮件域外 , 你还需要一个电子邮件提供商 , 这样才能使用 SMTP 服务器 。 在本文的示例中 , 我们将使用 Gmail 及其 SMTP 服务器 。 因此 , 你需要一个 Gmail 账号 。 此外 , 你还需要设置应用密码 , 且不设置两步验证 , 作为登录 SMTP 服务器的方式 。
具体的做法 , 请参见:https://myaccount.google.com/apppasswords 。 从“应用程序”下拉菜单中选择Email , “设备”下拉菜单中选择“任意设备” , 然后就可以获得一个密码 , 后面我们会使用这个密码来完成 Gmail 的 SMTP 服务器的身份验证 。
下面 , 我们来看一看代码 。 首先 , 我们需要导入一些模块:
  • email:用于格式化电子邮件 。

    特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。