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


main.pydef main: number = "5623720883"message = "hello world!"provider = "T-Mobile"sender_credentials = ( "email@domain.com", "password") send_sms_via_email(number, message, provider, sender_credentials)我们使用 __name__ 方法运行程序:
if__name__ == "__main__": main发送 MMS 消息
下面 , 我们介绍如何发送 MMS 消息 。 代码与发送 SMS 消息基本类似 , 我们从同一段代码入手:
main.pydefsend_mms_via_email( number: str, message: str, provider: str, sender_credentials: tuple, subject: str = "sent using etext", smtp_server: str = "smtp.gmail.com", smtp_port: int = 465,): sender_email, email_password = sender_credentials receiver_email =f'{number}@{PROVIDERS.get(provider).get("sms")}' 为了发送 MMS 消息 , 我们还需要添加三个参数:
  • file_path:由于我们需要一个文件来发送多媒体消息 , 因此需要再添加一个参数用以表示文件的路径 。
  • mime_maintype:多媒体文件的主类型 。
  • mime_subtype:多媒体文件的子类型 。
具体的代码如下:
main.pydefsend_mms_via_email( number: str, message: str, file_path: str, mime_maintype: str, mime_subtype: str, provider: str, sender_credentials: tuple, subject: str = "sent using etext", smtp_server: str = "smtp.gmail.com", smtp_port: int = 465,):此外 , 我们还需要导入发送 MMS 的工具函数:
main.pyfrom email importencodersfrom email.mime.base importMIMEBasefrom email.mime.multipart importMIMEMultipartfrom email.mime.text importMIMETextfrom os.path importbasename接下来 , 我们来写发送电子邮件的函数 。 我们发送的邮件不需要显示主题、收件人和消息 , 但邮件应该包含多个部分:第一部分 , 消息本身;第二部分 , 电子邮件的附件 。
回顾移动提供商列表 , 你可能会注意到一些提供商不支持发送多媒体消息 , 或者使用同一个域名和支持 SMS 的密钥发送短消息和多媒体消息 。
例如 , T-Mobile 没有 MMS 密钥 , 但实际上它支持 MMS 密钥 , 这意味着我们可以使用同一个短信域来 SMS 和 MMS 。 与此同时 , AT&T 既有 SMS 域也有 MMS 域 。 因此 , 你需要根据发送的内容选择合适的域名 。
与上述 email_message 方法类似 , 但这次我们使用 MIMEMultipart 。 此外 , 我们还需要使用 email_message 添加主题、收件人和发件人 。
main.pydefsend_mms_via_email( number: str, message: str, file_path: str, mime_maintype: str, mime_subtype: str, provider: str, sender_credentials: tuple, subject: str = "sent using etext", smtp_server: str = "smtp.gmail.com" smtp_port: int = 465,): sender_email, email_password = sender_credentials receiver_email =f'{number}@{PROVIDERS.get(provider).get("sms")}' email_message = MIMEMultipart email_message["Subject"] = subject email_message["From"] = sender_email email_message["To"] = receiver_email 接下来 , 我们在邮件中添加附件——普通类型(纯文本) 。
main.pydefsend_mms_via_email( number: str, message: str, file_path: str, mime_maintype: str, mime_subtype: str, provider: str, sender_credentials: tuple, subject: str = "sent using etext", smtp_server: str = "smtp.gmail.com", smtp_port: int = 465,): sender_email, email_password = sender_credentials receiver_email =f'{number}@{PROVIDERS.get(provider).get("sms")}' email_message = MIMEMultipart email_message["Subject"] = subject email_message["From"] = sender_email email_message["To"] = receiver_email email_message.attach(MIMEText(message, "plain")) MIME类型
MIME类型是一种文件类型或一种内容类型的声明 。 在我们的例子中 , MIME 文本表明电子邮件的内容是文本 。 同样 , 如果想添加此类的附件 , 则必须指定 MIME类型 。
附加文件

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