🐍 Как ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ элСктронноС письмо с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ python Π½Π° Linux

Как ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ email Ρ‡Π΅Ρ€Π΅Π· python

by itisgood

Если Π²Ρ‹ Π½Π΅ программист, Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ экспСртом, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ рассмотрим Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ИспользованиС Python для написания скриптов

ИспользованиС Python для написания сцСнариСв – популярный ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€.

Бинтаксис Python прост, Ρ‡Ρ‚ΠΎ позволяСт быстро ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ скрипты.

Он прСдоставляСт ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, позволяя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ с мСньшими усилиями.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Python для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹

Π‘Π½Π°Ρ‡Π°Π»Π° создайтС Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .py

# vi sending_mail.py

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ скрипта python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ тСстировали для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹:

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

# Email конфигурация
sender_email = "your_email@gmail.com"
receiver_email = "recipient_email@example.com"
subject = "Subject of the email"
body = "Body of the email"

# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ сообщСниС элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = subject

# ΠŸΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ Ρ‚Π΅Π»ΠΎ письма
message.attach(MIMEText(body, "plain"))

# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ SMTP-сСрвСру (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Gmail).smtp_server = "smtp.gmail.com"
smtp_port = 25

with smtplib.SMTP(smtp_server, smtp_port) as server:
    # # Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ сСбя Π½Π° SMTP-сСрвСрС
    server.ehlo()

    # ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ°
    server.sendmail(sender_email, receiver_email, message.as_string())

print("Email sent successfully.")

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ внСсти Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠΎΡ€Ρ‚ 25, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½Π΅Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… SMTP-соСдинСний.

Π­Ρ‚ΠΎ SMTP-ΠΏΠΎΡ€Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ использования Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… соСдинСний ΠΏΠΎ сообраТСниям бСзопасности.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли ваш ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ сСрвСр ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ TLS, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅ скриптом.

πŸ“’Β ΠšΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ SendEmail Π½Π° Linux

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Python для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ с использованиСм TLS

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ связь с smtp-сСрвСром, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ 587 вмСсто 25.

ΠŸΠΎΡ€Ρ‚ 587 ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ TLS (Transport Layer Security) ΠΈΠ»ΠΈ STARTTLS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС вашим Python-скриптом) ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌ сСрвСром.

ИспользованиС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ считаСтся Π±ΠΎΠ»Π΅Π΅ бСзопасным, особСнно ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹.

πŸ”Β ΠšΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ TLS ΠΈ SSL Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ (вСрсии) Π½Π° Linux

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Python для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ с TLS:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

#  Email конфигурация
sender_email = "your_email@gmail.com"
receiver_email = "recipient_email@example.com"
subject = "Subject of the email"
body = "Body of the email"

# Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ сообщСниС элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = subject

#  ΠŸΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ Ρ‚Π΅Π»ΠΎ письма
message.attach(MIMEText(body, "plain"))

#  ΠŸΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»
attachment_file_path = "/path/to/your/file.txt"
attachment = open(attachment_file_path, "rb")

part = MIMEBase("application", "octet-stream")
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header(
    "Content-Disposition",
    f"attachment; filename= {attachment_file_path.split('/')[-1]}",
)
message.attach(part)

# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ SMTP-сСрвСру (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΡ€Ρ‚ 25).
smtp_server = "smtp.gmail.com"
smtp_port = 587
smtp_username = "your_email@gmail.com"
smtp_password = "your_email_password"

with smtplib.SMTP(smtp_server, smtp_port) as server:
    # Start TLS for security
    server.starttls()

    # Π’Ρ…ΠΎΠ΄ Π½Π° сСрвСр
    server.login(smtp_username, smtp_password)
    server.sendmail(sender_email, receiver_email, message.as_string())

print("Email with attachment sent successfully.")

Π’ этом случаС Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ввСсти имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для Π²Ρ…ΠΎΠ΄Π° Π½Π° smtp-сСрвСр.

Бпонсор этой ΡΡ‚Π°Ρ‚ΡŒΠΈ – наши ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Ρ‹ ΠΏΠ°ΠΌΠΏΠ°Π΄Ρƒ

You may also like

Leave a Comment