#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. Не могли бы вы отредактировать свой пост, чтобы включить код, который вы использовали при этом подходе, и полное сообщение об ошибке? Я думаю, что это может помочь в отладке проблемы