临时电子邮件地址有很多用处,例如避免垃圾邮件或不使用主电子邮件地址注册网站。在本指南中,我们将使用 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.")

此代码发送一封包含指定内容的电子邮件 subjectbody 使用 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. 综合起来

现在,我们将在一个脚本中结合生成临时电子邮件地址、发送电子邮件和检查收件箱的步骤。

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)

这里还没有评论,你可以成为第一个评论者!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注


选择和购买代理

数据中心代理

轮流代理

UDP代理机构

受到全球 10000 多家客户的信赖

代理客户
代理客户
代理客户 flowch.ai
代理客户
代理客户
代理客户