Ссылка на таблицы стилей CSS в коде Python

#python #html #css

Вопрос:

Я работаю над автоматизированным проектом электронной почты, который дает мне ежедневный доход от моих инвестиций в пассивный доход. Я привел в действие всю автоматизацию и теперь работаю над структурой электронной почты. У меня возникли проблемы с элементами CSS, отображающимися в моей электронной почте. Вот соответствующий код.

 def send_mail(text=" ", subject=('PKs Daily Overview '   date), from_email='PKBot lt;piercedailymail@gmail.comgt;', to_emails=None, html= """  lt;headgt;  lt;link href="C:\Users\kings\PythonProjects\DailyEmail\css\normalize.cs" rel="stylesheet" type="text/css"gt;  lt;link href="C:\Users\kings\PythonProjects\DailyEmail\css\taegans-groovy-site.webflow.css" rel="stylesheet" type="text/css"gt;  lt;link href="C:\Users\kings\PythonProjects\DailyEmail\css\webflow.css" rel="stylesheet" type="text/css"gt; lt;/headgt; lt;bodygt;  lt;div class="pricing-section"gt;  lt;div class="container"gt;  lt;div class="title-block"gt;  lt;h1 class="heading"gt;Pierceamp;#x27;s lt;span class="text-span"gt;Passive Income Breakdownlt;/spangt;lt;/h1gt;  lt;/divgt;  lt;div class="pricing-wrap"gt;  lt;div class="pricing-column-02"gt;  lt;div class="pricing-card purple"gt;  lt;div class="div-block"gt;  lt;h3 class="pricing-h3 white"gt;Heliumlt;/h3gt;lt;img src="images/helium-hnt-logo.png" loading="lazy" width="53" id="w-node-_3b1efe47-cc49-dccf-fdc4-c9ae7d3a64ca-c7f2d992" srcset="images/helium-hnt-logo-p-500.png 500w, images/helium-hnt-logo-p-800.png 800w, images/helium-hnt-logo-p-1080.png 1080w, images/helium-hnt-logo-p-1600.png 1600w, images/helium-hnt-logo.png 2000w" sizes="53px" alt=""gt;  lt;/divgt;  lt;div class="pricing-details-wrap"gt;  lt;div class="pricing white"gt;lt;h1gt;${strtotal}lt;/h1gt;lt;/divgt;  lt;div class="pricing white"gt;lt;h1 style="color:purple;"gt;${strtotal}lt;/h1gt;lt;/divgt;  lt;div class="date white"gt;last 24 hourslt;/divgt;  lt;/divgt;  lt;div class="pricing-check-wrap"gt;  lt;div class="pricing-check"gt;  lt;p class="pricing-text white"gt;lt;stronggt;Expert Foggy Perch:lt;/stronggt;lt;/pgt;  lt;/divgt;  lt;div class="pricing-check"gt;  lt;p class="pricing-text white _2"gt;$8.00lt;/pgt;  lt;/divgt;  lt;div class="pricing-check"gt;  lt;p class="pricing-text white"gt;lt;stronggt;Macho Carrot Orca:lt;/stronggt;lt;/pgt;  lt;/divgt;  lt;div class="pricing-check"gt;  lt;p class="pricing-text white _2"gt;$8.00lt;/pgt;  lt;/divgt;  lt;p class="pricing-text white"gt;lt;stronggt;Sneaky Chrome Dog:lt;/stronggt;lt;/pgt;  lt;p class="pricing-text white _2"gt;$8.00lt;/pgt;  lt;/divgt;  lt;a href="https://explorer.helium.com/accounts/13pm9juR7WPjAf7EVWgq5EQAaRTppu2EE7ReuEL9jpkHQMJCjn9" class="pricing-button white w-button"gt;Open Explorerlt;/agt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  lt;/divgt; """  

Он выходит вместе со всем HTML. Строка кода lt;div class="pricing white"gt;lt;h1 style="color:purple;"gt;${strtotal}lt;/h1gt;lt;/divgt; была для меня просто тестом, чтобы проверить, будет ли CSS работать встроенно, но у меня все еще возникают проблемы с ссылками на таблицы стилей. Буду признателен за любую помощь. 🙂

Ответ №1:

Я не думаю, что вы можете ссылаться на свои css-файлы таким образом, так как, когда электронное письмо читается со стороны получателя, оно не может извлечь файл css из указанного пути (потому что путь хранится локально на вашем компьютере, а не на компьютере получателя). Я думаю, что один из способов обойти это-вставить все содержимое css-файла в html-код внутри lt;stylegt; тега, вместо этого используя lt;stringgt;.format(lt;value 1gt;, ...) функцию

 def extract_css(css_file_name):  # return the string content of the CSS file  with open(css_file_name, 'r') as fl:  content = fl.read()  return content  def send_mail(text=" ", subject=('PKs Daily Overview '   date), from_email='PKBot lt;piercedailymail@gmail.comgt;', to_emails=None, html= """ lt;headgt;  lt;stylegt; {}  lt;/stylegt;  lt;stylegt; {}  lt;/stylegt;  lt;stylegt; {}  lt;/stylegt; lt;/headgt; lt;bodygt;  lt;div class="pricing-section"gt;  lt;div class="container"gt;  lt;div class="title-block"gt;  lt;h1 class="heading"gt;Pierceamp;#x27;s lt;span class="text-span"gt;Passive Income Breakdownlt;/spangt;lt;/h1gt;  lt;/divgt;  lt;div class="pricing-wrap"gt;  lt;div class="pricing-column-02"gt;  lt;div class="pricing-card purple"gt;  lt;div class="div-block"gt;  lt;h3 class="pricing-h3 white"gt;Heliumlt;/h3gt;lt;img src="images/helium-hnt-logo.png" loading="lazy" width="53" id="w-node-_3b1efe47-cc49-dccf-fdc4-c9ae7d3a64ca-c7f2d992" srcset="images/helium-hnt-logo-p-500.png 500w, images/helium-hnt-logo-p-800.png 800w, images/helium-hnt-logo-p-1080.png 1080w, images/helium-hnt-logo-p-1600.png 1600w, images/helium-hnt-logo.png 2000w" sizes="53px" alt=""gt;  lt;/divgt;  lt;div class="pricing-details-wrap"gt;  lt;div class="pricing white"gt;lt;h1gt;${strtotal}lt;/h1gt;lt;/divgt;  lt;div class="pricing white"gt;lt;h1 style="color:purple;"gt;${strtotal}lt;/h1gt;lt;/divgt;  lt;div class="date white"gt;last 24 hourslt;/divgt;  lt;/divgt;  lt;div class="pricing-check-wrap"gt;  lt;div class="pricing-check"gt;  lt;p class="pricing-text white"gt;lt;stronggt;Expert Foggy Perch:lt;/stronggt;lt;/pgt;  lt;/divgt;  lt;div class="pricing-check"gt;  lt;p class="pricing-text white _2"gt;$8.00lt;/pgt;  lt;/divgt;  lt;div class="pricing-check"gt;  lt;p class="pricing-text white"gt;lt;stronggt;Macho Carrot Orca:lt;/stronggt;lt;/pgt;  lt;/divgt;  lt;div class="pricing-check"gt;  lt;p class="pricing-text white _2"gt;$8.00lt;/pgt;  lt;/divgt;  lt;p class="pricing-text white"gt;lt;stronggt;Sneaky Chrome Dog:lt;/stronggt;lt;/pgt;  lt;p class="pricing-text white _2"gt;$8.00lt;/pgt;  lt;/divgt;  lt;a href="https://explorer.helium.com/accounts/13pm9juR7WPjAf7EVWgq5EQAaRTppu2EE7ReuEL9jpkHQMJCjn9" class="pricing-button white w-button"gt;Open Explorerlt;/agt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  """):   # html with stylesheet code included  sent_html = html.format(  extract_css('C:\Users\kings\PythonProjects\DailyEmail\css\normalize.css'),  extract_css('C:\Users\kings\PythonProjects\DailyEmail\css\taegans-groovy-site.webflow.css'),  extract_css('C:\Users\kings\PythonProjects\DailyEmail\css\webflow.css'),  strtotal='some string')  print(sent_html)  # Do something  

Комментарии:

1. Я сталкиваюсь с массой проблем, когда дело доходит до вставки всех CSS-файлов в HTML-код. Вы говорите, что сторона получателя не может иметь доступ к CSS-файлам, поскольку они хранятся локально. Есть ли способ, которым я могу просто распечатать html-файл, содержащий ссылки CSS, как они уже были бы сохранены?

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

3. Это дает мне /n ключевых ошибок для всех атрибутов CSS.

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