1

Pinax でメール確認をセットアップする方法は?、SMTP サーバーなどをセットアップする必要がありますか?、それに関するドキュメントを見つけようとしましたが、失敗しました。これについて説明しているドキュメントまたは関連記事にリダイレクトできますか? Pinax は電子メール確認アプリを使用しています。emailconfirmation のコードを閲覧しましたが、ホストやサーバーに関する設定が含まれていません。

4

1 に答える 1

2

メール確認の統合は非常に簡単です。メールの送信に使用できる既存のメールサーバーがある場合は、メールサーバーをセットアップする必要はありません。標準の Django 設定でメールの送信に使用するデータを入力するだけで、メール確認はそれを使用します。

# e-mail settings
# XXXXXXXXXXXXXXXXXXXXXXX     THESE ARE NOT YET PRODUCTIONREADY!
EMAIL_HOST='mail.your_mailserver.com'
EMAIL_PORT=1025
EMAIL_HOST_USER='your_username'
EMAIL_HOST_PASSWORD='your_password'

次に何をすべきかを要約すると: 電子メールアドレスを入力するためのフォームを作成する必要があります (そのようなフォームが電子メール設定に付属していない理由はやや不明瞭です)。これは次のようになります。

# email form using emailconfirmation
class AddEmailForm(forms.Form):

    def __init__(self, *args, **kwargs):
        try:
            self.user = kwargs.pop('user')
        except KeyError:
            pass
        super(AddEmailForm, self).__init__(*args, **kwargs)

    email = forms.EmailField(label="Email",required=True, widget=forms.TextInput())

    def clean_email(self):
        try:
            EmailAddress.objects.get(user=self.user, email=self.cleaned_data["email"])
        except EmailAddress.DoesNotExist:
            try:
                User.objects.get(email = self.cleaned_data['email'])
            except User.DoesNotExist:
                return self.cleaned_data["email"]
        raise forms.ValidationError(u"email address associated with another account.")

    def save(self):
        try:
            self.user.message_set.create(message="Confirmation email sent to %s" % self.cleaned_data["email"])
        except AttributeError:
            pass
        return EmailAddress.objects.add_email(self.user, self.cleaned_data["email"])

これにより、ユーザーは電子メール アドレスを入力し、その電子メール アドレスが既に存在し、別のアカウントで使用されているかどうかを確認できます。その後、メールアドレスを未確認のメールアドレスに追加し、リンクを含むメールをユーザーに送信します。ユーザーは、リンクをクリックして電子メールアドレスを確認できます。

それだけです。Pinax の連中がすぐにドキュメントに対して質の高い攻撃を行うことを期待しましょう ;)

于 2012-05-27T16:39:04.313 に答える