π§ ΠΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΈΡΡΠΌΠΎ Π½Π° ΠΏΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python? ΠΠ΅Π³ΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°
Π§ΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΈΡΡΠΌΠΎ Π½Π° ΠΏΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ smtplib.
import smtplib
from email.mime.text import MIMEText
# ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° SMTP
smtp_server = 'smtp.example.com'
port = 25
# Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ
sender_email = 'sender@example.com'
receiver_email = 'receiver@example.com'
# Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
message = MIMEText('ΠΡΠΈΠ²Π΅Ρ, ΡΡΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ!')
message['Subject'] = 'Π’Π΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ'
# ΠΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΏΠΈΡΡΠΌΠΎ
with smtplib.SMTP(smtp_server, port) as server:
server.sendmail(sender_email, receiver_email, message.as_string())
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΈΡΡΠΌΠΎ Π½Π° ΠΏΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python
ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΈΡΠ΅ΠΌ Π½Π° ΠΏΠΎΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π½Π°Π²ΡΠΊΠΎΠΌ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, ΠΎΡΡΠ΅ΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΈΡΡΠΌΠΎ Π½Π° ΠΏΠΎΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Python.
1. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° smtplib
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° smtplib ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΈΡΡΠΌΠ° ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ SMTP. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ:
import smtplib
def send_email(smtp_server, sender_email, receiver_email, subject, body, username, password):
message = f"Subject: {subject}\n\n{body}"
with smtplib.SMTP(smtp_server) as server:
server.login(username, password)
server.sendmail(sender_email, receiver_email, message)
print("ΠΠΈΡΡΠΌΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ!")
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ send_email
smtp_server = "smtp.mail.ru"
sender_email = "example@mail.ru"
receiver_email = "recipient@example.com"
subject = "ΠΡΠΈΠ²Π΅Ρ ΠΎΡ Python!"
body = "ΠΡΠΈΠ²Π΅Ρ, ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python!"
username = "example@mail.ru"
password = "password"
send_email(smtp_server, sender_email, receiver_email, subject, body, username, password)
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ send_email, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- smtp_server - Π°Π΄ΡΠ΅Ρ SMTP-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΈΡΡΠΌΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, "smtp.mail.ru" Π΄Π»Ρ ΠΏΠΎΡΡΡ Mail.ru)
- sender_email - Π°Π΄ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΏΠΈΡΡΠΌΠ°
- receiver_email - Π°Π΄ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΏΠΈΡΡΠΌΠ°
- subject - ΡΠ΅ΠΌΠ° ΠΏΠΈΡΡΠΌΠ°
- body - ΡΠ΅ΠΊΡΡ ΠΏΠΈΡΡΠΌΠ°
- username - ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° SMTP-ΡΠ΅ΡΠ²Π΅ΡΠ΅
- password - ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° SMTP-ΡΠ΅ΡΠ²Π΅ΡΠ΅
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅ΠΌΡ ΠΈ ΡΠ΅ΠΊΡΡΠ° ΠΏΠΈΡΡΠΌΠ°. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ SMTP-ΡΠ΅ΡΠ²Π΅ΡΡ, Π°Π²ΡΠΎΡΠΈΠ·ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ, ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
2. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° yagmail
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° yagmail ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΠΉ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅:
import yagmail
def send_email(sender_email, receiver_email, subject, body, password):
yag = yagmail.SMTP(sender_email, password)
yag.send(receiver_email, subject, body)
print("ΠΠΈΡΡΠΌΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ!")
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ send_email
sender_email = "example@gmail.com"
receiver_email = "recipient@example.com"
subject = "ΠΡΠΈΠ²Π΅Ρ ΠΎΡ Python!"
body = "ΠΡΠΈΠ²Π΅Ρ, ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python!"
password = "password"
send_email(sender_email, receiver_email, subject, body, password)
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ send_email, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- sender_email - Π°Π΄ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΏΠΈΡΡΠΌΠ°
- receiver_email - Π°Π΄ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΏΠΈΡΡΠΌΠ°
- subject - ΡΠ΅ΠΌΠ° ΠΏΠΈΡΡΠΌΠ°
- body - ΡΠ΅ΠΊΡΡ ΠΏΠΈΡΡΠΌΠ°
- password - ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° yagmail.SMTP, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ SMTP-ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ send, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π°Π΄ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ, ΡΠ΅ΠΌΡ ΠΏΠΈΡΡΠΌΠ° ΠΈ ΡΠ΅ΠΊΡΡ ΠΏΠΈΡΡΠΌΠ°.
3. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° EmailMessage
Π Python 3.6 ΠΈ Π²ΡΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° EmailMessage Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΌΠΈ ΠΏΠΈΡΡΠΌΠ°ΠΌΠΈ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
from email.message import EmailMessage
import smtplib
def send_email(sender_email, receiver_email, subject, body, username, password):
message = EmailMessage()
message["Subject"] = subject
message["From"] = sender_email
message["To"] = receiver_email
message.set_content(body)
with smtplib.SMTP("smtp.mail.ru") as server:
server.login(username, password)
server.send_message(message)
print("ΠΠΈΡΡΠΌΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ!")
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ send_email
sender_email = "example@mail.ru"
receiver_email = "recipient@example.com"
subject = "ΠΡΠΈΠ²Π΅Ρ ΠΎΡ Python!"
body = "ΠΡΠΈΠ²Π΅Ρ, ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python!"
username = "example@mail.ru"
password = "password"
send_email(sender_email, receiver_email, subject, body, username, password)
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° EmailMessage ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π°ΡΡΠΈΠ±ΡΡΡ: ΡΠ΅ΠΌΡ (Subject), Π°Π΄ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ (From), Π°Π΄ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ (To) ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΈΡΡΠΌΠ° (set_content). ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ SMTP-ΡΠ΅ΡΠ²Π΅ΡΡ, Π°Π²ΡΠΎΡΠΈΠ·ΡΠ΅ΠΌΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΈΡΡΠΌΠ° Π½Π° ΠΏΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ smtplib, yagmail ΠΈΠ»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ EmailMessage Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ.
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π»ΡΡΡΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΠΌ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ (SSL ΠΈΠ»ΠΈ TLS) ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ SMTP-ΡΠ΅ΡΠ²Π΅ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ Π²Π°Ρ ΠΏΠ°ΡΠΎΠ»Ρ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.