Web2py-email-sms

提供:Dev Guides
移動先:案内検索

Web2py-メールとSMS

web2pyには、ユーザーに電子メールとSMSを送信する機能が含まれています。 ライブラリを使用して、電子メールと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* を返します。

to、 cc 、および bcc の属性には、メールの送信が意図されている有効なメールアドレスのリストが含まれます。

SMSを送信する

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アプリにはいくつかのファイルが含まれています。 それらの1つはmodels/db.pyで、4つをインポートします。
  • gluon.tools のクラスにはメールライブラリも含まれ、さまざまなグローバルオブジェクトを定義します。
  • scaffoldingアプリケーションは、 db.auth_user などのauthオブジェクトに必要なテーブルも定義します。 デフォルトの足場アプリケーションは、ファイル数を最小限に抑えるように設計されており、モジュール式ではありません。 特に、モデルファイル 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 = '[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 = ''