Как добавить динамический контент в HTML для отправки почты в Python - PullRequest
1 голос
/ 22 мая 2019

Я отправляю почту с html-содержимым, используя 'smtplib' в python, я хочу добавить динамический контент в этот html.

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

message = MIMEMultipart("alternative")
message["Subject"] = "Error Notification"
message["From"] = sender
message["To"] = sender

# Create the plain-text and HTML version of your message
html = """\
    <html>
      <body>
        <p>Hi,<br>
           <span>Something went wrong !</span><br>
        </p>
      </body>
    </html>
    """
part1 = MIMEText(html, "html")

# Add HTML/plain-text parts to MIMEMultipart message
message.attach(part1)
try:
    smtpObj = smtplib.SMTP('localhost')
    smtpObj.sendmail(sender, receivers, message.as_string())
    print "Successfully sent email"
except smtplib.SMTPException:
    print "Error: unable to send email"

Наряду с приведенным выше html мне нужно включить некоторые из моих динамических содержимоговнутри тега body

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Поскольку это Python, вы можете делать действительно классные вещи со строками.Просто назовите определенные области html с специальными именами, а затем используйте метод replace , чтобы заменить их любым желаемым значением.

html = """\
    <html>
      <body>
        <p>Hi, $(name)<br>
           <span> $(error) </span><br>
        </p>
      </body>
    </html>
"""

html = html.replace("$(name)", "John")
html = html.replace("$(error)", "Something went wrong!")

print(html)
0 голосов
/ 22 мая 2019

Чтобы включить динамический контент, просто получите данные из своего источника данных и объедините их с текстом письма в соответствии с вашими потребностями.

...