Python: отправка электронной почты в формате html через SMTP - PullRequest
2 голосов
/ 10 октября 2019

У меня есть код, который отлично отправляет электронные письма, но теперь мне нужно сделать некоторые обновления и отправить электронное письмо в формате html. Я пытался исследовать, но они не работали для меня. Как я могу изменить формат на HTML? Пока я получаю этот код в виде строки, а не HTML.

    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.ehlo()
    server.starttls()
    server.ehlo()
    server.login(f'{login_email}', f'{login_email_pass}')
    Subject = f'{program_name} : Launch verification'
    server.add_header('Content-Type','text/html')
    Body2 = """\
    <!DOCTYPE html>
    <html>
    <body>

    <h1 style="color:black;text-align:center;font-family:verdana">SERVER 51SV15J LAUNCH</h1>
    <p style="color:black;text-align:center;font-family:courier;font-size:120%">Code for confirmation is - <b>51256fd.</b></p>

    </body>
    </html>
"""
    Body = f'{service} just have been started.\nServer Details:\nServer IPV4 : {Ipv4_Address}\nServer IPV6 : {Ipv6_Address}\nServer Region : {Ip_region}\nServer Internet Providers : {Ip_org}\nServer SessionID : {SessionID}\n\n* To verify it, please enter the code : {Code}' 
    msg = f"Subject : {Subject}\n\n{Body2}"
    server.sendmail(
        f'{login_email}',
         f'{test_email}',
        msg
    )

1 Ответ

2 голосов
/ 10 октября 2019

Я не уверен, как его использовать, используя smtp.ehlo (), но в качестве альтернативы это можно сделать так: -


import os
import smtplib
from email.message import EmailMessage #new

EMAIL = f'{login_email}
PASSWORD = f'{login_email_pass}'

message = EmailMessage()
message['Subject'] = f'{program_name} : Launch verification'
message['From'] = EMAIL
message['To'] = EMAIL
message.set_content('This email is sent using python.')
message.add_alternative("""\
<!DOCTYPE html>
    <html>
    <body>

    <h1 style="color:black;text-align:center;font-family:verdana">SERVER 51SV15J LAUNCH</h1>
    <p style="color:black;text-align:center;font-family:courier;font-size:120%">Code for confirmation is - <b>51256fd.</b></p>

    </body>
    </html>
""", subtype = 'html')

with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
    smtp.login(EMAIL, PASSWORD)
    smtp.send_message(message)

Надеюсь, это хорошо поможет. Я не пробовал, но использовал код из здесь и отредактировал его, чтобы соответствовать вашему делу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...