Учебники

Web2py — электронная почта и SMS

web2py включает в себя функции отправки электронной почты и SMS пользователю. Он использует библиотеки для отправки электронных писем и смс.

Настройка электронной почты

Встроенный класс, а именно gluon.tools.Mail класс, используется для отправки электронной почты в рамках web2py. Почтовик может быть определен с этим классом.

from gluon.tools import Mail
mail = Mail()
mail.settings.server = 'smtp.example.com:25'
mail.settings.sender = '[email protected]'
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 = ['[email protected]'], subject = 'hello',
   reply_to = '[email protected]',
   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 принимает номер телефона (в виде строки), который возвращает адрес электронной почты телефона.

  • Приложение scaffolding включает в себя несколько файлов. Один из них — models / db.py, который импортирует четыре.

  • Классы из gluon.tools также включают почтовые библиотеки и определяют различные глобальные объекты.

  • Приложение scaffolding также определяет таблицы, необходимые для объекта auth, такие как db.auth_user . Приложение скаффолдинга по умолчанию разработано, чтобы минимизировать количество файлов, а не быть модульным. В частности, файл модели, db.py , содержит конфигурацию, которую в производственной среде лучше всего хранить в отдельных файлах.

Функция sms_email принимает номер телефона (в виде строки), который возвращает адрес электронной почты телефона.

Приложение scaffolding включает в себя несколько файлов. Один из них — models / db.py, который импортирует четыре.

Классы из gluon.tools также включают почтовые библиотеки и определяют различные глобальные объекты.

Приложение scaffolding также определяет таблицы, необходимые для объекта auth, такие как db.auth_user . Приложение скаффолдинга по умолчанию разработано, чтобы минимизировать количество файлов, а не быть модульным. В частности, файл модели, db.py , содержит конфигурацию, которую в производственной среде лучше всего хранить в отдельных файлах.

Здесь мы предлагаем создать файл конфигурации —