Переменные при отправке электронной почты с использованием smtplib - PullRequest
0 голосов
/ 04 мая 2019

Для проекта я хочу, чтобы моя программа отправляла электронные письма на мою учетную запись.В настоящее время я использую smptlib для этого.Письма, которые я отправляю, написаны в HTML.Проблема в том, что я не знаю, как включить переменные в это письмо, потому что они меняются.Кто-нибудь может мне помочь?

Я уже пытался добавить различные синтаксисы, такие как

y = 20
x = ('percentage: %i', 20)
x = f'percentage: {y}'

, но они не работают в режиме тройных кавычек с функцией msg.add_alternative

Вот мой код:

import smtplib

msg = EmailMessage()
msg['Subject'] = 'test'
msg['From'] = EMAIL_ADDRESS
msg['To'] = 'niek9999@gmail.com'

msg.set_content('Hello')
percentage = 32 

msg.add_alternative(("""
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" 
...
<li style="font-size: 14px; line-height: 19.6px;"><span style="font-size: 16px; line-height: 22.4px;">percentage: <PERCENTAGE HERE> %</span></li>
..."""
subtype= 'html')


with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
    smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
    smtp.send_message(msg)

Я хочу достичь цели, чтобы этот процент был в сообщении, которое будет отправлено.

Надеюсь, кто-нибудь может мне помочь, заранее спасибо!

1 Ответ

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

Синтаксис f"""{percent}""", безусловно, работает на Python 3.7.0. Я только что попробовал. Пожалуйста, опубликуйте код, который вы запускаете, и ошибку, с которой вы столкнулись.

(base) C:\Users\andrás>python
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> percent=20
>>> s=f"""percent is: "{percent}\""""
>>> s
'percent is: "20"'
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...