Alamat e-mel sementara berguna untuk banyak sebab, seperti mengelakkan spam atau mendaftar untuk tapak web tanpa menggunakan alamat e-mel utama anda. Dalam panduan ini, kami akan mencipta sistem e-mel sementara menggunakan Python. Ini termasuk menjana alamat e-mel rawak, menghantar e-mel dan menyemak peti masuk.
1. Hasilkan Alamat E-mel Rawak
Untuk membuat e-mel sementara, kami akan menjana alamat e-mel rawak menggunakan random
modul.
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}")
Kod ini menjana nama pengguna rawak sebanyak 10 aksara dan menambahkan domain example.com
.
2. Sediakan SMTP untuk Menghantar E-mel
Untuk menghantar e-mel ke alamat sementara, kami perlu mengkonfigurasi pelayan SMTP. Dalam contoh ini, kami akan menggunakan pelayan 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.")
Kod ini menghantar e-mel dengan yang dinyatakan subject
dan body
ke alamat e-mel sementara menggunakan pelayan SMTP Gmail.
3. Buat Pelayan Mudah untuk Menerima E-mel
Untuk melengkapkan sistem e-mel sementara, kami memerlukan pelayan untuk menerima e-mel. Kami akan menggunakan Flask
rangka kerja dan imaplib
modul untuk ini.
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)
Skrip ini menyediakan pelayan web ringkas dengan Flask yang menyemak peti masuk e-mel dan mencetak kandungan semua e-mel.
4. Menyatukan Semuanya
Sekarang, kami akan menggabungkan langkah-langkah untuk menjana alamat e-mel sementara, menghantar e-mel dan menyemak peti masuk dalam satu skrip.
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)
Kesimpulan
Panduan ini menunjukkan cara membuat sistem e-mel sementara menggunakan Python. Skrip menjana alamat e-mel rawak, menghantar e-mel ujian dan menyemak peti masuk. Anda boleh menyesuaikan dan meningkatkan lagi skrip ini berdasarkan keperluan khusus anda.
Kebergantungan dan Persediaan
Untuk menjalankan skrip ini, pastikan anda memasang pakej Python yang diperlukan:
pip install Flask
Selain itu, kemas kini skrip dengan bukti kelayakan e-mel anda dan pastikan akaun e-mel anda membenarkan akses kepada apl yang kurang selamat atau menggunakan kata laluan khusus apl.
Dengan persediaan ini, anda boleh mengurus alamat e-mel sementara dengan cekap untuk pelbagai tujuan.
Komen (0)
Tiada ulasan di sini lagi, anda boleh menjadi yang pertama!