如何使用 python3 smtplib 向多个收件人发送 html 电子邮件

How to send html email to multiple recipients using python3 smtplib

提问人:Ernesto Ruiz 提问时间:10/24/2023 最后编辑:wjandreaErnesto Ruiz 更新时间:10/24/2023 访问量:36

问:

我正在尝试使用 python-3.10 向多个收件人发送带有 HTML 内容的电子邮件我已经阅读了文档并提出了以下代码,但是,尽管电子邮件已发送给所有收件人,但该消息未正确显示 html。我收到的消息没有 html 格式,也没有换行符。我收到的电子邮件文本:Email text

我做错了什么?我需要能够向多个收件人发送 html 电子邮件 这是我的代码。(出于安全原因,我无意中隐藏了服务器的凭据)

import smtplib, ssl
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.message import EmailMessage
from email.utils import make_msgid

cobertura = "Movistar"
msisdn="53763615"
client_name="Ernesto Ruiz Rodriguez"
client_document="786876876786786"
mensaje="Este mensaje ha sido enviado a los administradores solamente"
content_text=f"""\
Saludos
El sistema PANIX ha recibido una nueva portabilida móvil inversa con los siguientes datos:
Cobertura: {cobertura}
Msisdn: {msisdn}
Nombre cliente: {client_name}
Documento cliente: {client_document}
Otra información de interes:
{mensaje}
Le recomendamos hacer un seguimiento del estado de esta portabilidad desde el apartado "Portabilidad móvil/Solicitudes portabilidad móvil inversa"
Atentamente:
Equipo Panix
"""

content_html=f"""\
<html>
  <head></head>
  <body>
<p><strong>Saludos</strong></p>
<p>El sistema PANIX ha recibido una nueva portabilida móvil inversa con los siguientes datos:</p>
<p><strong>Cobertura:</strong> {cobertura}</p>
<p><strong>Msisdn:</strong> {msisdn}</p>
<p><strong>Nombre cliente:</strong> {client_name}</p>
<p><strong>Documento cliente:</strong> {client_document}</p>
<p><strong>Otra información de interes:</strong></p>
<p>{mensaje}</p>
<p>Le recomendamos hacer un seguimiento del estado de esta portabilidad desde el apartado "Portabilidad móvil/Solicitudes portabilidad móvil inversa".</p>
<p>Atentamente:</p>
<p>Equipo Panix</p>
  </body>
</html>
"""

mail=smtplib.SMTP('smtp.server.com', 587)
mail.ehlo()
mail.starttls()
mail.login('[email protected]','password')

sender_email='[email protected]'
receiver_email='[email protected], [email protected]'

message = EmailMessage()
message["Subject"] = "Message with html to multiple receipents"
message["From"] = sender_email
message["To"] = receiver_email

message.set_content(content_text)
message.add_alternative(content_text, subtype='html')

mail.send_message(message)
mail.close()
python smtplib

评论

2赞 Savir 10/24/2023
在代码中,创建代码后不会在任何地方使用。所有内容都是.我不确定,但你不想要类似的东西吗?content_htmlcontent_textmessage.add_alternative(content_html, subtype='html')
0赞 opike 10/24/2023
如果您只发送给一个收件人,电子邮件内容是否正确?你可能想看看这个问题(如果你还没有):stackoverflow.com/questions/8856117/......
1赞 Ernesto Ruiz 10/24/2023
你在哪里,我需要添加 message.add_alternative(content_html, subtype='html') 我觉得很愚蠢,它就在我面前。谢谢

答: 暂无答案