Tijdelijke e-mailadressen zijn om vele redenen nuttig, zoals het vermijden van spam of het aanmelden voor websites zonder uw primaire e-mailadres te gebruiken. In deze handleiding maken we een tijdelijk e-mailsysteem met Python. Dit omvat het genereren van een willekeurig e-mailadres, het verzenden van e-mails en het controleren van de inbox.
1. Genereer een willekeurig e-mailadres
Om een tijdelijk e-mailadres te maken, genereren we een willekeurig e-mailadres met behulp van de random
module.
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}")
Deze code genereert een willekeurige gebruikersnaam van 10 tekens en voegt het domein toe example.com
.
2. SMTP instellen voor het verzenden van e-mails
Om e-mails naar het tijdelijke adres te verzenden, moeten we een SMTP-server configureren. In dit voorbeeld gebruiken we de SMTP-server van 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.")
Met deze code wordt een e-mail verzonden met de opgegeven gegevens subject
en body
naar het tijdelijke e-mailadres via de SMTP-server van Gmail.
3. Creëer een eenvoudige server om e-mails te ontvangen
Om het tijdelijke e-mailsysteem te voltooien, hebben we een server nodig om e-mails te ontvangen. Wij gebruiken de Flask
kader en imaplib
module hiervoor.
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)
Dit script zet een eenvoudige webserver op met Flask die de e-mailinbox controleert en de inhoud van alle e-mails afdrukt.
4. Alles samenvoegen
Nu combineren we de stappen om een tijdelijk e-mailadres te genereren, een e-mail te verzenden en de inbox te controleren in één script.
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)
Conclusie
Deze handleiding laat zien hoe u een tijdelijk e-mailsysteem kunt maken met Python. Het script genereert een willekeurig e-mailadres, verzendt een test-e-mail en controleert de inbox. U kunt dit script verder aanpassen en verbeteren op basis van uw specifieke vereisten.
Afhankelijkheden en instellingen
Om dit script uit te voeren, moet u ervoor zorgen dat de benodigde Python-pakketten zijn geïnstalleerd:
pip install Flask
Werk het script ook bij met uw e-mailgegevens en zorg ervoor dat uw e-mailaccount toegang geeft tot minder veilige apps of een app-specifiek wachtwoord gebruikt.
Met deze configuratie kunt u tijdelijke e-mailadressen voor verschillende doeleinden efficiënt beheren.
Opmerkingen (0)
Er zijn hier nog geen reacties, jij kunt de eerste zijn!