Временные адреса электронной почты полезны по многим причинам, например, для предотвращения спама или регистрации на веб-сайтах без использования основного адреса электронной почты. В этом руководстве мы создадим временную систему электронной почты с помощью 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-сервер. В этом примере мы будем использовать SMTP-сервер Gmail.

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 на временный адрес электронной почты с помощью SMTP-сервера Gmail.

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, который проверяет почтовый ящик электронной почты и печатает содержимое всех писем.

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)

Здесь пока нет комментариев, вы можете быть первым!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Выбрать прокси

Серверные прокси

Ротационные прокси

Прокси-серверы с UDP

Нам доверяют более 10 000 клиентов по всему миру

Прокси-клиент
Прокси-клиент
Прокси клиента flowch.ai
Прокси-клиент
Прокси-клиент
Прокси-клиент