web2py包括向用户发送电子邮件和SMS的功能.它使用库来发送电子邮件和短信.
设置电子邮件
内置类 gluon.tools.Mail class用于在web2py框架中发送电子邮件.邮件可以用这个类定义.
from gluon.tools import Mailmail = 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 .
属性, cc 和 bcc 包括要为其发送邮件的有效电子邮件地址列表.
发送短信
发送短信的实现不同于在web2py框架中发送电子邮件,因为它需要第三方服务,可以将消息中继到接收方.第三方服务不是免费服务,显然会根据地理区域(从一个国家/地区)而有所不同.
web2py使用模块来帮助发送带有以下流程的短信 :
from gluon.contrib.sms_utilsimport SMSCODES, sms_emailemail = 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 包含配置,该配置在生产环境中最好保存在单独的文件中.
在这里,我们建议从gluon.storage导入存储
设置创建配置文件 :
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 = ''