1
0

More than 3 years have passed since last update.

Gmailの複数アカウント対策

Posted at

概要

gmailの特殊な仕様と複数アカウント対策をまとめます。

前提知識

WEBメールの仕様として、メールアドレス以下のような構成になっています。

ユーザー名@ホスト名

gmailの仕様

以下のメールアドレス送信したメールは、gmailの仕様によりexample@gamil.comに届きます。

  • 1) ユーザー名の大文字小文字は区別されない

EXAMPLE@gmail.com

  • 2) ユーザー名のエイリアスが使える(+から後ろ)

example+qiita@gmail.com

  • 3) ドットは無視される

ex.am.ple@gamil.com

  • 4) ホスト名は、"gmail.com" "googlemail.com"はどちらも使える

example@googlemail.com

  • 要するに

こんなメールアドレスでも送信先は同じです

E.x.A.m.P.l.E+qiita@googlemail.com

問題点

どんなメールアドレスでも登録できてしまうサービスを作ってしまうと

1つのメールアドレスで複数のアカウントが作れてしまいます。

対策

ユニークなアドレスをチェックすることで対策します。
以下のコードは、gmailだけチェックするようになっています。

python3
#!/usr/bin/env python3
# coding: utf-8
import re

# メールアドレスを指定
mail_address = 'E.x.A.m.P.l.E+qiita@googlemail.com'

# メールアドレスを分解
user_name,host_name = mail_address.split('@')

# メールアドレス変換処理
if host_name in ['gmail.com','googlemail.com']:
    user_name = user_name.lower() # 小文字に変換
    user_name = re.sub('\\.', '', user_name) # .を削除
    user_name = re.sub('\\+.*', '', user_name) # +エイリアスを削除 
    host_name = 'gmail.com' # gmail.comに統一

# ユニークなアドレスを特定
unique_gmail = user_name+'@'+host_name
print(unique_gmail) # example@gamil.com

# メールアドレスのチェック
# (ここに処理)

終わり

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0