Web2py - E-mail i SMS

Platforma web2py zawiera funkcje wysyłania e-maili i SMS-ów do użytkownika. Używa bibliotek do wysyłania e-maili i smsów.

Konfigurowanie poczty e-mail

Klasa wbudowana, mianowicie gluon.tools.Mailklasa służy do wysyłania wiadomości e-mail w ramach platformy web2py. Mailer można zdefiniować za pomocą tej klasy.

from gluon.tools import Mail
mail = Mail()
mail.settings.server = 'smtp.example.com:25'
mail.settings.sender = '[email protected]'
mail.settings.login = 'username:password'

Wiadomość e-mail nadawcy, jak wspomniano w powyższym przykładzie, wraz z hasłem zostanie uwierzytelniona za każdym razem, gdy zostanie wysłana wiadomość e-mail.

Jeśli użytkownik musi eksperymentować lub używać do celów debugowania, można to osiągnąć za pomocą następującego kodu.

mail.settings.server = 'logging'

Teraz wszystkie e-maile nie zostaną wysłane, ale zostaną zarejestrowane w konsoli.

Wysyłanie wiadomości e-mail

Po skonfigurowaniu ustawień konfiguracji wiadomości e-mail za pomocą obiektu mail, wiadomość e-mail może zostać wysłana do wielu użytkowników.

Pełna składnia mail.send() wygląda następująco -

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

Implementacja mail.send() podano poniżej.

mail.send(
   to = ['[email protected]'], subject = 'hello',
   reply_to = '[email protected]',
   message = 'Hello ! How are you?'
)

Mailzwraca wyrażenie logiczne na podstawie odpowiedzi serwera pocztowego, że wiadomość została odebrana przez użytkownika końcowego. WracaTrue jeśli uda mu się wysłać wiadomość e-mail do użytkownika.

Atrybuty, cc i bcc zawiera listę prawidłowych adresów e-mail, na które ma być wysłana poczta.

Wysyłanie wiadomości SMS

Implementacja wysyłania wiadomości SMS różni się od wysyłania wiadomości e-mail w ramach platformy web2py, ponieważ będzie wymagać usługi strony trzeciej, która może przekazywać wiadomości do odbiorcy. Usługa strony trzeciej nie jest usługą bezpłatną i oczywiście będzie się różnić w zależności od regionu geograficznego (od kraju do kraju).

web2py używa modułu ułatwiającego wysyłanie wiadomości SMS w następującym procesie -

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')

W powyższym przykładzie SMSCODES to słownik obsługiwany przez web2py, który odwzorowuje nazwy głównych firm telekomunikacyjnych na postfix adresu e-mail.

Firmy telefoniczne zwykle traktują wiadomości e-mail pochodzące z usług stron trzecich jako spam. Lepszą metodą jest to, że firmy telefoniczne same przekazują SMS-y. Każda firma telefoniczna ma unikalny adres e-mail dla każdego przechowywanego numeru telefonu komórkowego, a SMS może zostać wysłany bezpośrednio na e-mail.

W powyższym przykładzie

  • Plik sms_email funkcja przyjmuje numer telefonu (jako ciąg znaków), który zwraca adres e-mail telefonu.

  • Aplikacja do tworzenia rusztowań zawiera kilka plików. Jednym z nich jest modele / db.py, który importuje cztery pliki.

  • Zajęcia z gluon.tools zawiera również biblioteki pocztowe i definiuje różne obiekty globalne.

  • Aplikacja szkieletowa definiuje również tabele wymagane przez obiekt auth, taki jak db.auth_user. Domyślna aplikacja do tworzenia szkieletów została zaprojektowana tak, aby zminimalizować liczbę plików, a nie być modułową. W szczególności plik modelu,db.pyzawiera konfigurację, którą w środowisku produkcyjnym najlepiej przechowywać w osobnych plikach.

Tutaj sugerujemy utworzenie pliku konfiguracyjnego -

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 = '[email protected]'
		
      settings.keywords = ''
      settings.description = ''
      settings.layout_theme = 'Default'
      settings.security_key = 'a098c897-724b-4e05-b2d8-8ee993385ae6'
		
      settings.email_server = 'localhost'
      settings.email_sender = '[email protected]'
      settings.email_login = ''
		
      settings.login_method = 'local'
      settings.login_config = ''