Курс Python → Отправка поздравлений по дню рождения

Для автоматической отправки писем на день рождения с использованием Python необходимо создать проект, который будет использовать стандартные модули smtplib, EmailMessage и datetime. Дополнительно потребуются библиотеки pandas и openpyxl, которые можно установить с помощью pip. Эти библиотеки понадобятся для чтения данных из Excel файла, который содержит информацию о ваших друзьях.

После чтения данных из Excel файла программа будет проверять, есть ли сегодня у кого-то из ваших друзей день рождения. Если такой день найден, программа будет отправлять электронное письмо этому другу, поздравляя его с днем рождения. После отправки письма программа будет делать пометку в Excel таблице о том, что у этого друга уже было отправлено письмо.

Пример кода для этой программы может выглядеть следующим образом:


import pandas as pd
from openpyxl import load_workbook
import smtplib
from email.message import EmailMessage
import datetime

# Чтение данных из Excel файла
df = pd.read_excel('friends.xlsx')

# Проверка на наличие дня рождения у друзей
today = datetime.datetime.now().strftime('%m-%d')
for index, row in df.iterrows():
    if row['birthday'] == today:
        # Отправка письма другу
        msg = EmailMessage()
        msg.set_content(f"С днем рождения, {row['name']}!")
        msg['Subject'] = 'Поздравление с днем рождения'
        msg['From'] = 'your_email@example.com'
        msg['To'] = row['email']
        
        with smtplib.SMTP('smtp.example.com', 587) as smtp:
            smtp.login('your_email@example.com', 'your_password')
            smtp.send_message(msg)
            
        # Пометка в Excel таблице
        df.loc[index, 'email_sent'] = 'Yes'

# Сохранение изменений в Excel файле
with pd.ExcelWriter('friends.xlsx', engine='openpyxl') as writer:
    writer.book = load_workbook('friends.xlsx')
    df.to_excel(writer, index=False)

Этот код сначала читает данные из Excel файла, затем проверяет, есть ли у кого-то из друзей сегодня день рождения. Если такой друг найден, программа отправляет ему поздравительное письмо и делает пометку в Excel таблице. Не забудьте заменить ‘your_email@example.com’ и ‘your_password’ на свои реальные данные для отправки электронных писем.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Управление виртуальными средами в Python
  2. Основы работы со строками в Python
  3. Оператор «not» в Python
  4. Синхронизация потоков с time.sleep()
  5. Декораторы в Python
  6. Работа с изображениями PIL
  7. Сортировка слиянием
  8. Работа со списками
  9. Многопоточность и асинхронное программирование в Python
  10. Ключевое слово global в Python
  11. Python Поверхностное Копирование
  12. Печать списка с помощью метода join
  13. Операторы увеличения и уменьшения переменной
  14. Операторы увеличения и уменьшения в Python
  15. Colorama: окрашивание текста в Python
  16. Использование type hints
  17. Установка и использование модуля «howdoi»
  18. Поиск частых элементов в списке
  19. Принципы SRP и OCP
  20. Проектирование Singleton с метаклассом
  21. Форматирование даты с strftime()
  22. Работа с комбинациями в Python.
  23. Повторение элементов в Python
  24. Работа с набором данных CIFAR10 в PyTorch
  25. Работа с функцией next() в Python
  26. Установка пакета в Python
  27. Рекурсия для обращения строки
  28. Создание генераторов в Python
  29. Удаление ключа из словаря
  30. Модуль os: работа с файлами и папками
  31. Метод join() для объединения элементов строки
  32. Проверка типа объекта в Python
  33. Явный импорт в Python
  34. Использование модуля __future__
  35. Необязательные аргументы в Python
  36. Замена подстроки
  37. Подсчет вхождений элементов
  38. Избегайте двойного подчеркивания
  39. Перетасовка списков в Python
  40. Codecademy в Telegram
  41. Отслеживание выполнения программы с библиотекой tqdm
  42. Подчеркивание в REPL
  43. Метод repr() в Python
  44. Сравнение def и lambda в Python
  45. Сравнение строк в Python
  46. Функция reversed() в Python
  47. Defaultdict в Python
  48. Генераторы списков в Python

Marketello читают маркетологи из крутых компаний