Python-строки , встроенные или вставленные в html-сообщения электронной почты, возвращают 'none' в теле отправленного сообщения.
Я импортировал файл .py с именем Bscrape.py в качестве модуля и вызвал его функцию. Это сработало, но когда я пытаюсь напечатать строку как print (k), я получаю 'TypeError: должно быть str, а не NoneType' . Использование только строки «k» удаляет ошибку, но отправляет электронное письмо со строкой, которая выглядит как « none ».
import smtplib
import email
import sys, csv
from email.mime.multipart import MIMEMultipart
from email.headerregistry import Address
from email.message import EmailMessage
import email.encoders
import email.mime.text
import email.mime.base
from email.mime.text import MIMEText
import ast
import re
import os
import subprocess
smtpserver = smtplib.SMTP_SSL('smtp.gmail.com', 465)
me = 'Update <my_email@gmail.com>'
you = "your_email@gmail.com"
# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart('alternative')
msg['Subject'] = "Today's Headlines | Freshly Pressed"
msg['From'] = me
msg['To'] = you
#specifiy the module location for import
sys.path.extend(["C:\blinker\Webscrp_send_experiments"])
#import the python script file for usage
from Bscrape import print_BAE
k = str(print_BAE())
# now place this in the html body print_BAE()
#####
text = "Numbers for Monday"
html = """\
<html>
<body>
<h3>Values remain marginal</h3>
<p>States on the coast returned these numbers.<br>
""" + k + """<br>
The number above is surprising</p>
<hr>
</body>
</html>
"""
# Record the MIME types of both parts - text/plain and text/html.
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
# Attach parts into message container.
msg.attach(part1)
msg.attach(part2)
# Send the message via local SMTP server.
s = smtplib.SMTP_SSL('smtp.gmail.com', 465)
s.login("my_email@gmail.com", "my_password")
s.sendmail(me, you, msg.as_string())
s.quit()
Я ожидаю, что python распечатает строку "k" в теле отправленного электронного письма.
Это не работает. Он печатает всю электронную почту со строкой, обозначенной как «none» .