Web2py电子邮件和短信


web2py包括向用户发送电子邮件和短信的功能。它使用库来发送电子邮件和短信。

设置电子邮件

内置类即 gluon.tools.Mail 类用于在web2py框架中发送电子邮件。邮件程序可以用这个类来定义。

from gluon.tools import Mail
mail = Mail()
mail.settings.server = 'smtp.example.com:25'
mail.settings.sender = 'abc@example.com'
mail.settings.login = 'username:password'

上述示例中提到的发件人电子邮件以及密码将在每次发送电子邮件时进行验证。

如果用户需要尝试或用于某种调试目的,则可以使用以下代码来实现。

mail.settings.server = 'logging'

现在,所有的电子邮件都不会被发送,但会被记录在控制台中。

发送电子邮件

一旦我们使用邮件对象为电子邮件设置了配置设置,就可以将电子邮件发送给许多用户。

mail.send() 的完整语法如下 -

send(
   to, subject = 'Abc',
   message = 'None', attachments = [],
   cc = [], bcc = [], reply_to = [],
   sender = None, encoding = 'utf-8',
   raw = True, headers = {}
)

下面给出了 mail.send() 的实现。

mail.send(
   to = ['sender@example.com'], subject = 'hello',
   reply_to = 'abc@example.com',
   message = 'Hello ! How are you?'
)

邮件 根据邮件服务器的响应返回布尔表达式,即邮件由最终用户接收。如果成功向用户发送电子邮件,则返回 True

ccbcc 的属性包括要发送邮件的有效电子邮件地址列表。

发送短信

发送短消息的实现不同于在web2py框架中发送电子邮件,因为它需要可以将消息中继给接收方的第三方服务。第三方服务不是免费服务,并且显然根据地理区域(从国家到国家)有所不同。

web2py使用一个模块来帮助用以下过程发送SMS -

from gluon.contrib.sms_utils
import SMSCODES, sms_email
email = sms_email('1 (111) 111-1111','T-Mobile USA (abc)')
mail.send(to = email, subject = 'test', message = 'test')

在上面的例子中, SMSCODES 是由web2py维护的字典,它将主要电话公司的名称映射到电子邮件地址后缀。

电话公司通常将源自第三方服务的电子邮件视为垃圾邮件。更好的方法是电话公司自己传送短信。每家电话公司都为其存储设备中的每个手机号码提供唯一的电子邮件地址,并且可以将短信直接发送至电子邮件。

在上面的例子中,

  • sms_email 功能需要一个电话号码(作为一个字符串),它返回手机的电子邮件地址。

  • 脚手架应用程序包含几个文件。其中之一是models / db.py,它导入四个。

  • gluon.tools中的 包括邮件库,并定义了各种全局对象。

  • 脚手架应用程序还定义auth对象所需的表,如 db.auth_user 。默认脚手架应用程序旨在最大限度地减少文件数量,而不是模块化。特别是,模型文件 db.py 包含配置,该配置在生产环境中最好保存在单独的文件中。

在这里,我们建议创建一个配置文件 -

from gluon.storage import Storage
   settings = Storage()
   settings.production = False

   if
      settings.production:
      settings.db_uri = 'sqlite://production.sqlite'
      settings.migrate = False
   else:
      settings.db_uri = 'sqlite://development.sqlite'
      settings.migrate = True
      settings.title = request.
      settings.subtitle = 'write something here'

      settings.author = 'you'
      settings.author_email = 'you@example.come'

      settings.keywords = ''
      settings.description = ''
      settings.layout_theme = 'Default'
      settings.security_key = 'a098c897-724b-4e05-b2d8-8ee993385ae6'

      settings.email_server = 'localhost'
      settings.email_sender = 'you@example.com'
      settings.email_login = ''

      settings.login_method = 'local'
      settings.login_config = ''