1. ホーム
  2. パイソン

[解決済み】有効な電子メールアドレスを確認する方法は?重複

2022-04-05 05:22:48

質問

正規表現を使ってフォームの入力が正しい形式のメールアドレスであることを確認する良い方法はありますか?昨夜から検索していますが、このトピックに関する人々の質問に答えている誰もが、それがサブドメインのメールアドレスである場合、それに問題があるようです。

解決方法は?

意味がない。メールアドレスが構文的に有効であることを確認できたとしても、それがミスタイプでないこと、そして実際に思った通りの相手に届くことを確認する必要があります。そのためには、相手にメールを送り、リンクをクリックさせて確認するしかありません。

したがって、最も基本的なチェック(たとえば、誤って自分の住所を入力しなかったかどうか)で通常は十分です。例えば、次のようなものです。 @ 記号、および少なくとも1つの . の後の部分には @ :

[^@]+@[^@]+\.[^@]+

空白を含む有効なメールアドレスもあるでしょうが、私は一度も見たことがありません。

完全なチェックが必要な場合は、以下を参照してください。 この質問 .


更新:このような正規表現を使用する方法は以下のとおりです。

import re

if not re.match(r"... regex here ...", email):
  # whatever

Python ≥3.4 は re.fullmatch よりも望ましいとされている re.match .

注意 r を文字列の前に置くことで、2回エスケープする必要がありません。

チェックする正規表現が大量にある場合、最初に正規表現をコンパイルした方が速い場合があります。

import re

EMAIL_REGEX = re.compile(r"... regex here ...")

if not EMAIL_REGEX.match(email):
  # whatever


もう一つの選択肢は validate_email このパッケージは実際にSMTPサーバーに接続して、アドレスが存在することを確認します。しかし、これはまだ正しい人のものであることを保証するものではありません。