Отправка email из Python.

Отправка email из Python.

smtplib — это стандартная библиотека Python для отправки электронных писем через SMTP-серверы. Она позволяет легко отправлять сообщения, включая текст, файлы и HTML-контент. Отправка email может быть полезна для автоматических уведомлений, напоминаний или регулярных отчетов.

Пример отправки простого email:

 

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# Настройки отправителя
sender_email = "your_email@gmail.com"
receiver_email = "recipient_email@example.com"
password = "your_password" # Введите пароль или токен приложения

# Создание сообщения
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = "Тестовое сообщение из Python"

# Текст письма
body = "Привет! Это тестовое сообщение, отправленное с помощью Python."
message.attach(MIMEText(body, 'plain'))

# Подключение к SMTP-серверу Gmail
try:
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls() # Шифрование соединения
    server.login(sender_email, password) # Авторизация

    # Отправка письма
    text = message.as_string()
    server.sendmail(sender_email, receiver_email, text)
    print("Сообщение успешно отправлено!")
except Exception as e:
    print(f"Ошибка отправки: {e}")
finally:
    server.quit()

Важно: Для работы с Gmail необходимо использовать токен приложения вместо обычного пароля (включите двухфакторную аутентификацию и сгенерируйте токен).

Пример отправки email с вложением:

from email.mime.base import MIMEBase
from email import encoders

# Добавляем вложение
filename = "example.txt"
with open(filename, "rb") as attachment:
    part = MIMEBase("application", "octet-stream")
    part.set_payload(attachment.read())

encoders.encode_base64(part)
part.add_header(
    "Content-Disposition",
    f"attachment; filename= {filename}",
)

message.attach(part)

# Отправляем письмо как раньше
server.sendmail(sender_email, receiver_email, message.as_string())
print("Сообщение с вложением успешно отправлено!")

Nicko

Добавить комментарий