Найти в Дзене

[Python] Отправка писем через сервер Яндекса.

Введение В рамках статьи настроим Яндекс почту и напишем простой скрипт для отправки электронных писем. В конце статьи есть ссылка в GitVerse на финальную версию программы. Используемые технологии ОС: Windows 10 Язык: Python 3.14 Основные библиотеки: smtplib и email Прочее: Яндекс Почта План работы Настраиваем Яндекс почту Настраиваем Яндекс ID Настраиваем системные переменные среды Создаём программу Запускаем программу Настраиваем Яндекс почту Настройку почты и Яндекс ID можно изучить по официальной документации: https://yandex.ru/support/yandex-360/customers/mail/ru/mail-clients/others В этой статье я на скриншотах покажу, куда и что нажимать. Первым делом заходим на почту Яндекса. Нажимаем "шестеренку" , после нажимаем "Все настройки". Нажимаем "Почтовые программы" и указываем галки, как на скриншоте ниже. Настраиваем Яндекс ID Заходим в Яндекс ID. Заходим в "Безопасность" Скролим вниз до пункта "Пароли приложений". Выбираем его. Создаём пароль для "Почты" Нужно заполнить "И
Оглавление

Введение

В рамках статьи настроим Яндекс почту и напишем простой скрипт для отправки электронных писем.

В конце статьи есть ссылка в GitVerse на финальную версию программы.

Используемые технологии

ОС: Windows 10

Язык: Python 3.14

Основные библиотеки: smtplib и email

Прочее: Яндекс Почта

План работы

  • Настраиваем Яндекс почту
  • Настраиваем Яндекс ID
  • Настраиваем системные переменные среды
  • Создаём программу
  • Запускаем программу

Настраиваем Яндекс почту

Настройку почты и Яндекс ID можно изучить по официальной документации: https://yandex.ru/support/yandex-360/customers/mail/ru/mail-clients/others

В этой статье я на скриншотах покажу, куда и что нажимать.

Первым делом заходим на почту Яндекса. Нажимаем "шестеренку" , после нажимаем "Все настройки".

-2

Нажимаем "Почтовые программы" и указываем галки, как на скриншоте ниже.

-3

Настраиваем Яндекс ID

Заходим в Яндекс ID. Заходим в "Безопасность"

-4

Скролим вниз до пункта "Пароли приложений". Выбираем его.

-5

Создаём пароль для "Почты"

-6

Нужно заполнить "Имя пароля"

-7

Сгенерируется пароль. Скопируем его куда-нибудь.

-8

На этом настройка почты закончена.

Настраиваем системные переменные среды

Настраивать переменные среды можно разными способами.

Мы же сделаем через cmd.

Открываем cmd от имени Администратора (это важно)

Набираем 2 команды

setx /m EMAIL_USER ВашаПочта
setx /m EMAIL_PASSWORD ПарольИзПредыдущегоПункта

Ниже указано, как удалить переменные среды. Нам сейчас это не надо, но может пригодиться

reg delete "HKCU\Environment" /v EMAIL_PASSWORD /f
reg delete "HKCU\Environment" /v EMAIL_USER /f

Создаём программу

Программа будет маленькая, поэтому будем писать в одном файле.

Первым делом создадим папку "YAMAIL", где будем писать программу

mkdir YAMAIL
cd YAMAIL/

Создадим виртуальную среду

py -3.14 -m venv venv

Создадим файл mail.py

-9

В 1 строке указываем шебанг, в котором указывается путь до интерпретатора в виртуальной среде.

Укажем необходимые импорты

import smtplib
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import COMMASPACE, formatdate
from os import environ
from pathlib import Path

И накидаем общую структуру программы, где главным героем будет класс MailSender

Далее подготовим if __name__ == "__main__"

  • Проверяем, что переменные среды заданы
  • Указываем SMTP-сервер и порт из документации
  • Указываем заголовок, тело и получателя письма
  • Указываем расположение файла для тестирования отправки файлов
  • Сформируем отправку сообщения
-10

Теперь давайте напишем метод send_email

-11

Формирование сообщения напишем в отдельном методе _create_msg

-12

Отдельными методами пропишем прикрепление файлов к письму

-13

На этом всё, можем запускать программу.

Запускаем программу

Запускаем скрипт через "py", таким образом запустится интерпретатор из виртуальной среды.

py mail.py

По почте должны получить письмо:

-14

Исходники проекта

DemonssTano/YAMAIL: Простой пример программы для отправки сообщений по почте Ссылка на статью в Дзен: https://dzen.ru/a/aTkiCP0We01TnrH_ | Gitverse

Подписывайтесь на Дзен, а также приглашаю в мой телеграмм канал, там публикую другой, но не менее интересный контент.