私と同姓同名の渡辺チカさん宛のメールがどこかの会社から来ることがある。私のメールアドレスは「名・姓@gmail.com」なのだが、同姓同名さんのメールは多分これに数字が加わっているのにうっかりそれを忘れた、という感じではないかと想像。数年前は「10数万払ってこの講習を受ければ翻訳家になれる」という類の会社からの「ご購入ありがとうございます」といったようなメールであった。そこには渡辺さんのリアル世界の住所も記載されていて、京都のどこかに住んでいる方のようだ。個人情報ですね。そして「この講習を受けても翻訳の仕事は回ってこない、多分」と思った私は、この渡辺さんは騙されているのではないかと異国の空から心配した。化粧品通販のメールも同じ人宛に来た。その後も数回間違いメールを受け取ったのだが、それ以降はこなくなった。メールアドレス違いに気づいたのかもしれない。
そして先週からはdodaという人材斡旋会社と思われるところから求人リストが掲載されたワタナベチカさん宛のメールが私のアドレスに送られてくるようになった。職種はバラバラで、AMEXからユニクロ、知らない会社まで範囲の広い仕事が掲載されている。数えたら1日10通のペースだ。さらに一つのメールに何十社も書いてあるものもある。紹介されてくる仕事は関東圏のものが多く、前回のチカさんとは別の人なようだ。また昨日は「渡辺様が直近7日以内にチェックされた求人をお知らせいたします」というメールも来て、どうも渡辺チカさんはログインして求人情報をチェックしているらしい。メールアドレスが間違っているのに一体全体どうしてログインできているのかは謎だが、私のところに来るメールはとにかく大量なので届いたら削除するようフィルタ設定しました。
***
昔々、高校生だった頃、東京の自宅の電話に「オグラxxさんいますか?」という電話が頻繁に来るようになったことがある。うちはオグラさんではなかったので「違います」と言って終わるのだが、かかってくる電話からだんだんオグラさんの家族構成も名前もわかるようになった。そして数ヶ月が経った頃、なんとオグラさんご本人から電話がかかってきた。オグラ家のおばあさんが入院して、自宅にかけようとして私の家にかけてしまったようだ。どうも、オグラさんは最近引っ越しをし、転居通知のハガキにうちの番号を書いてしまったらしい。オグラ家のおばあさんから正しい番号を教えてもらい、それ以降はオグラさんの間違い電話が来るたびに、「オグラさんの電話番号はXXXのXXXXです」と返事ができるようになってすっきり。かけてきた人は状況がわからず困惑したと思うのだが。
***
さて、dodaの件は、他にもスズキタロウさんとかタナカハジメさんとか、よくありそうな名前の方で私と同じく間違いメールが来るがどうにもできずに困っている人がいそう。そしてこれはdoda社がユーザ登録時にメールアドレスの確認プロセスを入れれば解決する問題である。
さて、サインアップ時に登録されたメルアドにコードを送信して確認しているサービスは多いと思うが、dodaのようにそうでないものもチラホラある。予算や時間の問題で端折ってしまったのかもしれない、とここまで考えて、ChatGPTにこのプログラムを書かせてみようと思いついた。「サインアップ時にユーザーのメールアドレスを確認するソフトウェアを書いてください」と聞いたら下記のようなお返事がありました。
——ChatGPTからのお返事——
以下は、サインアップ時にメールアドレスを確認するPythonのサンプルコードです。
import re
import random
import string
def verify_email_address(email):
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$'
if re.match(pattern, email):
return True
else:
return False
def generate_confirmation_code():
# Generate a random string of six uppercase letters
code = ''.join(random.choices(string.ascii_uppercase, k=6))
return code
# Prompt the user to enter their email address in Japanese
print("メールアドレスを入力してください:")
email_address = input()
# Keep prompting the user until they enter a valid email address
while not verify_email_address(email_address):
print("無効なメールアドレスです。もう一度入力してください:")
email_address = input()
# Generate a confirmation code and send it to the user's email address
confirmation_code = generate_confirmation_code()
print("確認コードがメールで送信されました。")
# Prompt the user to enter the confirmation code that was sent to their email address
print("確認コードを入力してください:")
user_code = input()
# Keep prompting the user until they enter the correct confirmation code
while user_code != confirmation_code:
print("無効な確認コードです。もう一度入力してください:")
user_code = input()
# If the confirmation code is correct, display a message in Japanese to confirm the sign-up
print("サインアップが完了しました。メールアドレス:" + email_address)
次のような日本語の説明もついていた。
このプログラムは、まず、日本語のプロンプトを表示して、ユーザーにメールアドレスを入力するよう促します。入力されたメールアドレスが有効であるかどうかを検証し、無効である場合は再入力を促すメッセージを表示します。
次に、確認コードを生成し、そのコードをユーザーのメールアドレスに送信します。ユーザーは、送信された確認コードを入力するように促されます。入力された確認コードが正しい場合、サインアップが完了したことを示すメッセージを表示します。確認コードが正しくない場合は、再入力を促します。
dodaさん、このコードを使えばメール確認プロセスを登録時のフローに加えられるようです。(なお、私はソフトウェアエンジニアではないのでこのコードが正しいかわかりません。)同姓同名が多そうな皆さんが助かると思いますので是非ご検討ください。