Python, отправка писем
Пример функции для отправки писем через Gmail:
import email.mime.multipart
import email.mime.text
import smtplib
import ssl
def send_email(receiver_email, subject, body):
sender_email = 'user@gmail.com'
message = email.mime.multipart.MIMEMultipart('alternative')
message['Subject'] = subject
message['From'] = sender_email
message['To'] = receiver_email
message.attach(email.mime.text.MIMEText(body, "html"))
context = ssl.create_default_context()
with smtplib.SMTP_SSL(
'smtp.gmail.com',
465,
context=context
) as server:
try:
server.login(sender_email, '12345678')
server.sendmail(sender_email, receiver_email, message.as_string())
return True
except smtplib.SMTPException as exc:
print(exc)
return False
Несколько замечаний:
- варианты обработки исключений и возвращаемых функцией значений могут быть самыми разными;
- к письму с помощью
attach
можно сначала добавить текстовый вариант сообщения, а уже после HTML вариант; в этом случае, если у пользователя отключено отображение HTML, будет корректно отображен текстовый вариант.