web2py version: 1.99.4
2.2.3. SMTP 認証¶
メール送信に使用する SMTPサーバの認証を利用した認証方式です。
Note
SMTPサーバとは、メールを送信するための SMTPプロトコルに対応した、メール送信用サーバのことです。
設定¶
設定前に アクセス制御の基本的な設定 を完了しておく必要があります。また 各認証方式での挙動の違い も参照下さい。
モデル定義(db.pyなど)にて、
login_methods
リスト値に email_auth()
関数を追加するか置き換えます。認証方式を追加した例(Gmailサーバを使った認証)
from gluon.contrib.login_methods.email_auth import email_auth
auth.settings.login_methods.append(email_auth("smtp.gmail.com:587", "@gmail.com"))
ドメインによって認証先を切り替えることが可能です。使用例を参照下さい。
- Form認証が有効時の挙動について
- 最初のログイン時、ユーザ情報と共にパスワードが保存されます。 このパスワードを web2pyの画面で変更します。すると、どちらのパスワードを使ってもログイン可能になります。 これはweb2pyで保持するパスワードで、Form認証が通りるためです。 このような挙動に問題がある場合は、Form認証を無効にするか、
login_methods
での認証方式の順序を変更してください。 詳細は 認証方式の問い合わせ順とユーザ情報登録 を参照ください。
認証用関数¶
認証用関数のパラメータについて説明します。
email_auth.
email_auth
([server="smtp.gmail.com:587", domain="@gmail.com", tls_mode=None])¶
- server
- SMTPサーバを指定します。コロン(:)記号と一緒にポート番号も指定します。 デフォルト値は Gmailサーバです(smtp.gmail.com:587)。
- dmain
- メールアドレスのドメインを指定します。 デフォルト値は Gmailドメインです(@gmail.com)。
- tls_mode
- tls(ssl) で接続する場合に指定します。デフォルトは None です。 何か値を指定(例えば True など)すると、ポート番号は 587に強制変更になります。
使用例¶
Gmail と Hotmailを認証サーバとして利用する設定
from gluon.contrib.login_methods.email_auth import email_auth
auth.settings.login_methods.append(email_auth("smtp.gmail.com:587", "@gmail.com"))
auth.settings.login_methods.append(email_auth("smtp.live.com:587", "@hotmail.co.jp"))
auth.settings.login_methods.append(email_auth("smtp.live.com:587", "@live.jp"))
Form認証を無効にした設定
from gluon.contrib.login_methods.email_auth import email_auth
auth.settings.login_methods = [email_auth("smtp.gmail.com:587", "@gmail.com")]
auth.settings.login_methods.append(email_auth("smtp.live.com:587", "@hotmail.co.jp"))
auth.settings.login_methods.append(email_auth("smtp.live.com:587", "@live.jp"))
この設定ではドメインによって、次のように認証先が切り替わります。
ドメイン 認証用SMTPサーバ @gmail.com GmailのSMTPサーバ @hotmail.co.jp HotmailのSMTPサーバ @live.jp HotmailのSMTPサーバ