web2py包括向用户发送电子邮件和SMS的功能。它使用库发送电子邮件和短信。
设置电子邮件
内置类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?' )
Mail根据最终用户接收邮件的邮件服务器的响应返回一个布尔表达式。如果成功向用户发送电子邮件,则返回True。
cc和bcc的属性包括要为其发送邮件的有效电子邮件地址的列表。
发送短信
发送SMS消息的实现不同于在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。每个电话公司的存储中的每个移动电话号码都包含一个唯一的电子邮件地址,并且SMS可以直接发送到电子邮件中。
在上面的示例中:
- 该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 = ''
作者:terry,如若转载,请注明出处:https://www.web176.com/web2py/873.html