最近のアップデートで、同じメールアドレスにプラス記号(+)を追加して新しいメールアドレスとして登録することができなくなったようです。私のシステムはこの機能に大きく依存しています。再度有効にするにはどうすればよいですか?
例えば、すでに email@gmail.com で登録している場合、email+1@gmail.com で登録できません。
ちなみに、これはREST APIでテストしています。
また、このオプションはチェックされていません。
最近のアップデートで、同じメールアドレスにプラス記号(+)を追加して新しいメールアドレスとして登録することができなくなったようです。私のシステムはこの機能に大きく依存しています。再度有効にするにはどうすればよいですか?
例えば、すでに email@gmail.com で登録している場合、email+1@gmail.com で登録できません。
ちなみに、これはREST APIでテストしています。
また、このオプションはチェックされていません。
はい、私にとってはすでに無効になっています
try.discourse.orgでは再現できません。
このメールアドレスで通常のUIからサインアップできますか?
また、+1メールがすでにサインアップに使用されていないか再確認していただけますか?
はい、通常のUIは問題ありません。REST APIは問題ありません。
まったく同じことをしましたが、本番環境で実行されている最新のコードでは問題を再現できませんでした。normalize emails 設定が無効になっている場合、期待どおりに動作しました。
Rails コンソールからこれらの出力を表示してもらえますか?
[1] pry(main)> SiteSetting.normalize_emails
[2] pry(main)> User.find_by_email('YOURUSERNAME@gmail.com').username
[3] pry(main)> User.find_by_email('YOURUSERNAME+1@gmail.com').username
また、お使いの Discourse のバージョンは何ですか?
本番サイトではなくテストサイト(またはその逆)にアクセスしている可能性も再確認してください。
うーん
正規化されたメールがブロックされているようです。![]()
つまり、email@gmail.com がブロックされている場合、email+1@gmail.com もブロックされているということです。正規化オプションが選択されていない場合、これは奇妙です。
それが、まず確認せずに「すでに取得済み」だと決めつけてしまった理由です🤣
メールとユーザーのカテゴリで、どのような設定が上書きされていますか?
そのメールアドレスや、例えばGmailドメインをブロックしましたか?
理解できませんでした。どこで確認すればよいですか?
はい、正規化されたメールがブロックされていることがわかります。
この場合、正規化オプションはデフォルトではないため、アンチグレフ対策として、設定に関係なくブロックされたアドレスのサブアドレスをほぼ確実にブロックします。
設定の「オーバーライドのみ表示」です。しかし、今は心配する必要はないと思います。
デスクに戻って、この拒否を行う実際のコードを確認しました。
一番上で、正規化されたメールアドレスをブロックリストに対してチェックしています。
def self.canonical(email)
name, domain = email.split("@", 2)
name = name.gsub(/\+.*/, "")
name = name.gsub(".", "") if %w[gmail.com googlemail.com].include?(domain.downcase)
"#{name}@#{domain}".downcase
end
それでも捕捉されなかった場合でも、ここではレーベンシュタイン距離のチェックで捕捉されます。
[1] pry(main)> Screened.canonical('fakezabanshenas@gmail.com', 'fakezabanshenas+1@gmail.com')
=> 2
SiteSetting.levenshtein_distance_spammer_emails のデフォルト値は 2 です。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.