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


  • smtplib:通过 SMTP 服务器发送电子邮件 。
  • ssl:连接SMTP 服务器 。
  • providers:上面提到的移动提供商的配置 。
  • 代码如下:
    main.pyimport email, smtplib, sslfrom providers importPROVIDERS下面是过电子邮件发送短信的方法 , 参数如下:
    main.pydefsend_sms_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,):
    • number:字符串类型 , 发送电子邮件的电话号码 。
    • message:字符串类型 , 实际的消息 。
    • provider:字符串类型 , 移动提供商 。
    • sender_credentials:元组类型 , 发件人凭据 , 不仅包括发送电子邮件 , 而且还包括上述我们通过 Google 应用获得的密码 。
    • subject:字符串类型 , 消息主题 。 注意 , 有些 SMS 网关不允许发送格式不正确的电子邮件 , 因此我们在此加入了主题 。
    • smtp_server:字符串类型 , SMTP服务器 。
    • smtp_port:整数类型 , SMTP服务器端口 。
    在这个示例中 , 我们将使用 Gmail 发送电子邮件 , 因此默认地址为:smtp.gmail.com 。 此外 , 我们还需要知道发送电子邮件的端口 。 如果你使用的是 Gmail , 则无需在意太多 , 但如果使用的是其他 SMPT 提供商或电子邮件服务器 , 则需要弄清楚他们使用哪个端口发送电子邮件 。 在我们的例子中 , SMTP 端口为整数类型 。
    我们首先应该定义的是发件人的电子邮件和密码 , 下面我们通过发件人凭据中获取这些信息:
    main.pydef send_sms_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 如上所述 , 接收者的电子邮件由电话号码和 SMS 网关的域名组成 。 此处 , 为了格式化 , 我使用了 f 字符串 。
    main.pydefsend_sms_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")}' 下面 , 我们来格式化电子邮件 。 我们创建一个名为 email_messagee 的变量 , 如上所述 , 有些提供商不允许发送格式不正确的电子邮件 , 因此我们不仅需要发送消息内容 , 还需要指定主题 , 以及接收方 , 这里我们将使用 f 字符串 。
    main.pydef send_sms_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")} ' email_message = f"Subject: {subject}\nTo: {receiver_email}\n {message}"为了发送电子邮件 , 我们需要使用上下文管理器 。 简单说明一下 , 上下文管理器可以让我们完成所有操作后优雅地关闭 SMTP 连接 , 所以这里我们将使用 smtplib , 并使用 SMTP_SSL 创建一个对象 , 然后利用该实例向 SMTP 服务器发出身份验证:
    main.pydef send_sms_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")} ' email_message = f"Subject: {subject}\nTo: {receiver_email}\n {message}" withsmtplib.SMTP_SSL( smtp_server, smtp_port, context=ssl.create_default_context ) asemail: email.login(sender_email, email_password) email.sendmail(sender_email, receiver_email, email_message)下面 , 我们来发送 SMS 消息!首先快速创建一个 main 方法 , 然后在这个 main 方法中调用 send_sms_via_email 。

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