一時的なメール アドレスは、スパムを回避したり、メインのメール アドレスを使用せずに Web サイトにサインアップしたりするなど、さまざまな理由で役立ちます。このガイドでは、Python を使用して一時的なメール システムを作成します。これには、ランダムなメール アドレスの生成、メールの送信、受信トレイの確認が含まれます。
1. ランダムなメールアドレスを生成する
一時的なメールを作成するには、 random
モジュール。
import random
import string
def generate_temp_email(domain='example.com'):
username = ''.join(random.choices(string.ascii_lowercase + string.digits, k=10))
return f"{username}@{domain}"
temp_email = generate_temp_email()
print(f"Temporary Email: {temp_email}")
このコードは10文字のランダムなユーザー名を生成し、ドメインを追加します example.com
.
2. 電子メール送信用のSMTPを設定する
一時アドレスにメールを送信するには、SMTP サーバーを設定する必要があります。この例では、Gmail の SMTP サーバーを使用します。
import smtplib
from email.mime.text import MIMEText
def send_email(to_address, subject, body):
from_address = '[email protected]'
password = 'your-email-password'
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_address
msg['To'] = to_address
with smtplib.SMTP('smtp.gmail.com', 587) as server:
server.starttls()
server.login(from_address, password)
server.sendmail(from_address, to_address, msg.as_string())
# Example usage
send_email(temp_email, "Test Subject", "This is a test email.")
このコードは指定された内容のメールを送信します subject
そして body
Gmail の SMTP サーバーを使用して一時的なメール アドレスに送信します。
3. メールを受信するためのシンプルなサーバーを作成する
一時的なメールシステムを完成させるには、メールを受信するサーバーが必要です。 Flask
フレームワークと imaplib
このためのモジュール。
from flask import Flask
import imaplib
import email
app = Flask(__name__)
# IMAP server configuration for receiving emails
IMAP_SERVER = 'imap.gmail.com'
IMAP_PORT = 993
EMAIL_ACCOUNT = '[email protected]'
PASSWORD = 'your-email-password'
def check_inbox():
mail = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
mail.login(EMAIL_ACCOUNT, PASSWORD)
mail.select('inbox')
status, messages = mail.search(None, 'ALL')
email_ids = messages[0].split()
for email_id in email_ids:
status, msg_data = mail.fetch(email_id, '(RFC822)')
msg = email.message_from_bytes(msg_data[0][1])
print(f"From: {msg['from']}\nSubject: {msg['subject']}\n\n{msg.get_payload(decode=True).decode('utf-8')}")
mail.logout()
@app.route('/check_mail', methods=['GET'])
def check_mail():
check_inbox()
return "Checked Inbox"
if __name__ == '__main__':
app.run(port=5000)
このスクリプトは、電子メールの受信トレイをチェックし、すべての電子メールの内容を印刷する、Flask を使用してシンプルな Web サーバーをセットアップします。
4. すべてをまとめる
ここで、一時的なメール アドレスを生成し、メールを送信し、受信トレイを確認する手順を 1 つのスクリプトにまとめます。
import random
import string
import smtplib
from email.mime.text import MIMEText
import imaplib
import email
from flask import Flask
app = Flask(__name__)
def generate_temp_email(domain='example.com'):
username = ''.join(random.choices(string.ascii_lowercase + string.digits, k=10))
return f"{username}@{domain}"
def send_email(to_address, subject, body):
from_address = '[email protected]'
password = 'your-email-password'
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_address
msg['To'] = to_address
with smtplib.SMTP('smtp.gmail.com', 587) as server:
server.starttls()
server.login(from_address, password)
server.sendmail(from_address, to_address, msg.as_string())
IMAP_SERVER = 'imap.gmail.com'
IMAP_PORT = 993
EMAIL_ACCOUNT = '[email protected]'
PASSWORD = 'your-email-password'
def check_inbox():
mail = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
mail.login(EMAIL_ACCOUNT, PASSWORD)
mail.select('inbox')
status, messages = mail.search(None, 'ALL')
email_ids = messages[0].split()
for email_id in email_ids:
status, msg_data = mail.fetch(email_id, '(RFC822)')
msg = email.message_from_bytes(msg_data[0][1])
print(f"From: {msg['from']}\nSubject: {msg['subject']}\n\n{msg.get_payload(decode=True).decode('utf-8')}")
mail.logout()
@app.route('/check_mail', methods=['GET'])
def check_mail():
check_inbox()
return "Checked Inbox"
if __name__ == '__main__':
temp_email = generate_temp_email()
print(f"Temporary Email: {temp_email}")
send_email(temp_email, "Test Subject", "This is a test email.")
app.run(port=5000)
結論
このガイドでは、Python を使用して一時的な電子メール システムを作成する方法を説明します。スクリプトはランダムな電子メール アドレスを生成し、テスト メールを送信し、受信トレイを確認します。このスクリプトは、特定の要件に基づいてさらにカスタマイズおよび拡張できます。
依存関係とセットアップ
このスクリプトを実行するには、必要な Python パッケージがインストールされていることを確認してください。
pip install Flask
また、メールの資格情報を使用してスクリプトを更新し、メール アカウントで安全性の低いアプリへのアクセスが許可されているか、アプリ固有のパスワードが使用されているかを確認します。
この設定により、さまざまな目的の一時的な電子メール アドレスを効率的に管理できます。
コメント (0)
まだコメントはありません。あなたが最初のコメントを投稿できます!