🐍 Python скрипт для отправки электронного письма через SMTP-сервер |

🐍 Python скрипт для отправки электронного письма через SMTP-сервер

Скрипты

Python с его обширной экосистемой библиотек позволяет легко создать скрипт для отправки электронных писем с использованием простого протокола передачи почты (SMTP).

В этой статье мы рассмотрим процесс создания скрипта Python для обмена сообщениями на основе сервера SMTP, что позволит вам с легкостью отправлять электронные письма.

1. Введение в SMTP и Python

SMTP – это стандартный интернет-протокол для передачи электронной почты.

Он определяет процесс, посредством которого сообщения электронной почты отправляются с одного почтового сервера на другой.

Библиотеки Python smtplib и email предоставляют простой в использовании интерфейс для работы с SMTP-серверами и создания почтовых сообщений.

2. Установка Python и необходимых библиотек

Чтобы начать работу, убедитесь, что в вашей системе установлен Python 3.6 или более поздней версии.

Вы можете скачать последнюю версию с официального сайта Python.

Необходимые библиотеки, smtplib и email, являются частью стандартной библиотеки Python и не требуют дополнительной установки.

🐍 Управление версиями Python с помощью pyenv

3. Настройка параметров сервера SMTP

Чтобы отправлять электронные письма через SMTP-сервер, необходимо указать следующие данные:

  • адрес SMTP-сервера
  • Порт SMTP-сервера
  • Учетные данные для аутентификации (адрес электронной почты и пароль)

Популярные почтовые службы, такие как Gmail, Yahoo и Outlook, имеют адреса и порты своих SMTP-серверов в открытом доступе.

Для Gmail адрес сервера – smtp.gmail.com, а порт – 587.

Примечание: Некоторые поставщики услуг электронной почты могут потребовать включить “Менее безопасные приложения” или создать “Пароль приложения” для аутентификации. Для получения дополнительной информации обратитесь к документации поставщика услуг электронной почты.

4. Создание простого электронной почты

Имея на руках информацию о SMTP-сервере, мы можем теперь создать Python скрипт для отправки электронной почты.

Вот пример:

import smtplib

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

# Определение настроек электронной почты

smtp_server = 'smtp.gmail.com'

smtp_port = 587

email_address = 'you@gmail.com'

email_password = 'your-password'

# Создание письма

subject = 'Hello, World!'

body = 'This is a test email sent from a Python script.'

msg = MIMEMultipart()

msg['From'] = email_address

msg['To'] = 'recipient@example.com'

msg['Subject'] = subject

msg.attach(MIMEText(body, 'plain'))

# Отправка email

with smtplib.SMTP(smtp_server, smtp_port) as server:

    server.starttls()

    server.login(email_address, email_password)

    server.send_message(msg)

print('Email sent successfully!')

Замените email_address, email_password и recipient@example.com на ваш реальный адрес электронной почты, пароль и адрес электронной почты получателя соответственно.

5. Дополнение скрипта электронной почты вложениями и HTML-содержимым

Чтобы добавить вложения или HTML-содержимое в письмо, вы можете изменить скрипта следующим образом:

from email.mime.application import MIMEApplication
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import COMMASPACE
import os

# Определение настроек электронной почты
smtp_server = 'smtp.gmail.com'
smtp_port = 587
email_address = 'you@gmail.com'
email_password = 'your-password'

# Создание сообщения электронной почты с содержимым HTML
subject = 'Hello, World!'
body = ('<h1>This is a test email sent from a Python script.</h1>'
'<p>It contains <strong>HTML content</strong> and an <em>attachment</em>.</p>')

msg = MIMEMultipart()
msg['From'] = email_address
msg['To'] = 'recipient@example.com'
msg['Subject'] = subject

msg.attach(MIMEText(body, 'html'))

# Add an attachment
attachment_path = 'example_file.pdf'
attachment_filename = os.path.basename(attachment_path)

with open(attachment_path, 'rb') as file:
attachment = MIMEApplication(file.read(), _subtype='pdf')
attachment.add_header('Content-Disposition', 'attachment', filename=attachment_filename)
msg.attach(attachment)

# Отправка почты
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(email_address, email_password)
server.send_message(msg)

print('Email sent successfully!')

В этом примере мы изменили переменную `body`, чтобы она содержала HTML-содержимое, и использовали `MIMEText(body, ‘html’)` для прикрепления HTML-содержимого к письму.

Чтобы добавить вложение, мы прочитали файл из указанного `attachment_path`, создали объект `MIMEApplication` и прикрепили его к письму.

Примечание: Не забудьте заменить `attachment_path` на фактический путь к файлу, который вы хотите прикрепить.

Заключение

В этой статье мы рассмотрели, как создать сценарий на Python для отправки электронных писем с помощью обмена сообщениями на основе SMTP-сервера.

Мы начали с базового сценария, научились добавлять HTML-содержимое и добавлять вложения в наши электронные письма.

Эти знания можно применять в различных скриптах, например, для отправки автоматизированных отчетов, уведомлений или информационных бюллетеней.

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

см. также:

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