Rumah pembangunan bahagian belakang Tutorial Python Mengautomasikan E-mel Hari Lahir dengan Python

Mengautomasikan E-mel Hari Lahir dengan Python

Sep 19, 2024 am 06:31 AM

Automating Birthday Emails with Python

Dalam era teknologi, automasi telah menjadi kemahiran penting, membolehkan kami menyelaraskan tugasan berulang dan meningkatkan produktiviti. Satu bidang di mana automasi boleh benar-benar bersinar adalah dalam pengurusan e-mel. Sebagai pelajar Python yang ingin meningkatkan kemahiran saya, saya baru-baru ini memulakan projek untuk mengautomasikan e-mel hari lahir. Projek ini bukan sahaja memberikan saya pengalaman praktikal tetapi juga mengukuhkan aplikasi praktikal Python dalam tugas harian.

Inspirasi

Idea untuk projek ini berpunca daripada cabaran biasa: mengingati hari lahir. Dengan rakan dan keluarga yang tersebar merentasi zon waktu yang berbeza, tarikh istimewa adalah mudah untuk dilupakan. Mengautomasikan ucapan selamat hari lahir boleh memastikan tiada sesiapa yang terpinggir, menjadikannya gerak isyarat yang bertimbang rasa yang memerlukan usaha minimum di pihak saya.

Gambaran Keseluruhan Projek

Matlamat projek saya adalah mudah: buat skrip yang menghantar e-mel hari lahir automatik kepada individu yang tarikh lahirnya jatuh pada hari semasa. Untuk mencapai matlamat ini, saya menggunakan Python bersama-sama dengan beberapa perpustakaan, termasuk panda untuk manipulasi data dan smtplib untuk menghantar e-mel.

Alatan dan Perpustakaan Digunakan

1. Python: Bahasa pengaturcaraan utama untuk projek.
2. panda: Pustaka manipulasi data yang berkuasa yang membolehkan pembacaan dan pemprosesan fail CSV dengan mudah.
3. smtplib: Pustaka Python terbina dalam untuk menghantar e-mel melalui Simple Mail Transfer Protocol (SMTP).
4. Rawak: Untuk memilih templat surat rawak untuk e-mel yang diperibadikan.

Langkah demi Langkah Pelaksanaan

1. Menyediakan Persekitaran
Pertama, saya memastikan bahawa Python telah dipasang pada mesin saya dan menyediakan persekitaran maya untuk projek itu. Saya juga memasang perpustakaan panda, yang tidak termasuk dalam perpustakaan standard.

pip install pandas
Salin selepas log masuk

2. Mencipta Fail CSV
Saya mencipta fail CSV bernama birthdays.csv untuk menyimpan nama, tarikh lahir dan alamat e-mel individu.

3. Membuat Templat Surat
Untuk menjadikan e-mel lebih diperibadikan, saya mencipta direktori bernama letter_templates yang mengandungi fail teks dengan mesej hari jadi. Fail tersebut dinamakan letter_1.txt, letter_2.txt dan letter_3.txt, setiap satu mengandungi format mesej yang berbeza. Setiap mesej termasuk pemegang tempat untuk nama itu.

4. Menulis Skrip Python
Teras projek itu ialah skrip Python yang menyemak tarikh semasa terhadap hari lahir dalam fail CSV dan menghantar e-mel jika terdapat padanan. Inilah kod lengkapnya:

from datetime import datetime
import pandas as pd
import random
import smtplib

# Your email and password
MY_EMAIL = "YOUR EMAIL"
MY_PASSWORD = "YOUR PASSWORD"

# Get today's date
today = datetime.now()
today_tuple = (today.month, today.day)

# Load birthdays from the CSV file
data = pd.read_csv("birthdays.csv")
birthdays_dict = {(data_row["month"], data_row["day"]): data_row for (index, data_row) in data.iterrows()}

# Check if today is someone's birthday
if today_tuple in birthdays_dict:
    birthday_person = birthdays_dict[today_tuple]

    # Select a random letter template
    file_path = f"letter_templates/letter_{random.randint(1, 3)}.txt"
    with open(file_path) as letter_file:
        contents = letter_file.read()
        contents = contents.replace("[NAME]", birthday_person["name"])

    # Set up the SMTP connection and send the email
    with smtplib.SMTP("YOUR EMAIL PROVIDER SMTP SERVER ADDRESS") as connection:
        connection.starttls()  # Upgrade to a secure connection
        connection.login(MY_EMAIL, MY_PASSWORD)  # Log in to your email account
        connection.sendmail(
            from_addr=MY_EMAIL,
            to_addrs=birthday_person["email"],
            msg=f"Subject: Happy Birthday!\n\n{contents}"
        )
Salin selepas log masuk

5. Menguji Automasi
Selepas menulis skrip, saya menjalankan beberapa ujian untuk memastikan semuanya berjalan lancar. Saya menetapkan tarikh yang berbeza dalam fail CSV dan mengesahkan bahawa e-mel yang betul telah dihantar. Saya juga menyemak sama ada templat huruf telah diformat dengan betul dan nama telah diganti dengan sewajarnya.

6. Pertimbangan Keselamatan
Untuk memastikan keselamatan, saya mengendalikan kelayakan e-mel saya dengan berhati-hati. Daripada mengekodkannya secara langsung dalam skrip, saya menggunakan pembolehubah persekitaran atau fail konfigurasi untuk menyimpan maklumat sensitif.

Pengambilan Utama

Projek ini memberikan saya pandangan berharga tentang dunia automasi dan aplikasi praktikal Python:

1. Memahami Protokol E-mel: Saya mendapat pemahaman asas tentang cara SMTP berfungsi dan cara menghantar e-mel secara pengaturcaraan.
2. Pengendalian Data dengan panda: Saya belajar cara membaca dan memanipulasi data daripada fail CSV, kemahiran penting untuk banyak projek dipacu data.
3. Kepentingan Pemperibadian: Dengan menggunakan templat surat, saya memahami kesan pemperibadian dalam komunikasi, walaupun dalam proses automatik.

Langkah Seterusnya

Melihat ke hadapan, saya teruja untuk meneroka peningkatan lanjut untuk projek ini:

  • Menggunakan OAuth2: Melaksanakan OAuth2 untuk pengesahan selamat dan bukannya menggunakan kata laluan e-mel biasa.

  • Menjadualkan E-mel: Menggunakan perpustakaan jadual Python untuk menjalankan skrip pada masa yang ditetapkan setiap hari secara automatik.

  • Menambah Lebih Banyak Ciri: Termasuk ciri seperti menghantar peringatan beberapa hari sebelum hari lahir seseorang.

Kesimpulan

Mengautomasikan e-mel hari lahir menggunakan Python telah menjadi pengalaman yang bermanfaat yang memperdalam pemahaman saya tentang automasi, pengendalian data dan protokol e-mel. Saya menggalakkan sesiapa sahaja yang ingin meningkatkan kemahiran pengaturcaraan mereka untuk memulakan projek yang serupa, kerana mereka menyediakan pengalaman praktikal dan peluang pembelajaran yang berharga.

Jika anda berminat dengan kod penuh, lihat repositori GitHub saya:

Pautan GitHub

Jangan ragu untuk berkongsi pendapat atau pengalaman anda dengan automasi dalam ulasan di bawah. Selamat mengekod!

Atas ialah kandungan terperinci Mengautomasikan E-mel Hari Lahir dengan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1666
14
Tutorial PHP
1273
29
Tutorial C#
1253
24
Python: Permainan, GUI, dan banyak lagi Python: Permainan, GUI, dan banyak lagi Apr 13, 2025 am 12:14 AM

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Apr 19, 2025 am 12:20 AM

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Python dan Masa: Memanfaatkan masa belajar anda Python dan Masa: Memanfaatkan masa belajar anda Apr 14, 2025 am 12:02 AM

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python vs C: Meneroka Prestasi dan Kecekapan Python vs C: Meneroka Prestasi dan Kecekapan Apr 18, 2025 am 12:20 AM

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array? Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array? Apr 27, 2025 am 12:03 AM

Pythonlistsarepartofthestandardlibrary, sementara

Python: Automasi, skrip, dan pengurusan tugas Python: Automasi, skrip, dan pengurusan tugas Apr 16, 2025 am 12:14 AM

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Pembelajaran Python: Adakah 2 jam kajian harian mencukupi? Pembelajaran Python: Adakah 2 jam kajian harian mencukupi? Apr 18, 2025 am 12:22 AM

Adakah cukup untuk belajar Python selama dua jam sehari? Ia bergantung pada matlamat dan kaedah pembelajaran anda. 1) Membangunkan pelan pembelajaran yang jelas, 2) Pilih sumber dan kaedah pembelajaran yang sesuai, 3) mengamalkan dan mengkaji semula dan menyatukan amalan tangan dan mengkaji semula dan menyatukan, dan anda secara beransur-ansur boleh menguasai pengetahuan asas dan fungsi lanjutan Python dalam tempoh ini.

Python vs C: Memahami perbezaan utama Python vs C: Memahami perbezaan utama Apr 21, 2025 am 12:18 AM

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

See all articles