Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ユーザー登録のemailにバリデーションを追加する #7444

Closed
komagata opened this issue Feb 27, 2024 · 5 comments
Closed

ユーザー登録のemailにバリデーションを追加する #7444

komagata opened this issue Feb 27, 2024 · 5 comments
Assignees
Labels

Comments

@komagata
Copy link
Member

メールの書式に何もvalidationがかかってないので。

@a-kuroki-gs
Copy link
Contributor

@komagata @machida
お疲れ様です。
こちらのIssueについてご相談です。
各社のメールアドレスについて調べた結果、こちらの日報に記載している表の結果となりました。
(WIP状態&見づらくて申し訳ないです🙏)
https://bootcamp.fjord.jp/reports/90372

そのため、バリデーションの方向性は以下にしようと考えておりますが、いかがでしょうか?

  • 許可するもの
    • 半角英数字
    • -(ハイフン)
    • .(ピリオド)
    • _(アンダーバー)
    • /(スラッシュ)
  • 特に指定しないもの
    • .(ピリオド)の連続使用
      • Gmail・Outlook・iCloudが不明
    • @直前の.(ピリオド)
      • Yahoo!メール・Outlook・iCloudが不明
    • 先頭文字
      • Outlook・iCloudが不明
  • ドメイン名
    • @」+「半角英数字・-(ハイフン)・.(ピリオド)」+「.」+「半角英字」

ご確認よろしくお願いいたします🙇‍♀️

@komagata
Copy link
Member Author

komagata commented Feb 29, 2024

@a-kuroki-gs まずはメールアドレスのRFCを調べてみて、それとの差分で検討するのがいいかもです。

また、URI::MailTo::EMAIL_REGEXPを使ってもいいかもと思ったのですが、これが日本の各種サービス(携帯電話会社のメアドなど)がある環境で現実的かどうか調べてみていただきたいです〜。

@a-kuroki-gs
Copy link
Contributor

@komagata

ご回答ありがとうございます。
RFCについても調べたのですが、許可する範囲が広すぎるため
そこからかなり絞り込んで考えてしまっておりました。

RFCとの差分としては

  • ローカル部
    • -_/以外の以下の記号も使える
      • !#$%&'*+=?^`{|}~
    • .は先頭と末尾以外で使用可能、2個以上連続してはならない
      • 日本のメールアドレスでは、対応しているものと、確認できないものがあった
    • ""で囲まれていれば以下が利用できる
      • ( ) < > [ ] : ; @ ,
      • .
      • スペース
    • 最大64文字
  • ドメイン
    • [ ]で囲まれたIPアドレスが使える
    • 最大253文字

この中で、先ほどのコメントに加えて対応すべきとしては、.の条件と-_/以外の記号を追加することかと思います。
それ以外は対応しているものが見つけられなかったためです。
ただ、.の条件は確認できないものもあったため、迷っていた部分です。

また、URI::MailTo::EMAIL_REGEXPについても調べてみました。
ソースコードを確認したところ

  • ローカル部
    • 半角英数字
    • !などのRFCで使えた記号(""で囲む場合を除く)
    • .の位置の制限はなく使える
  • ドメイン
    • 1文字目は半角英数字
    • その後は半角英数字と-が使えて、.で区切ることができる
      となっておりました。

日本のメールアドレスに対しては使える記号が多すぎるくらいが懸念点だと思いますので、こちらを使うのもアリかなとは思います。
(.の位置については先ほどと同じ理由で、考慮していなくてよいかと思いました。)

以上、私の見解ですがいかがでしょうか?

@komagata
Copy link
Member Author

@a-kuroki-gs 調査ありがとうございます。ではURI::MailTo::EMAIL_REGEXPでお願いします〜。

@a-kuroki-gs
Copy link
Contributor

本番環境で確認できたのでCloseします。

@komagata komagata moved this to 完成 in bootcamp Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

No branches or pull requests

2 participants