python - Python函数中的HTML代码不起作用
问题描述
我已经编写了几行代码来使用 smtplib 模块发送电子邮件。如果我按原样运行脚本:
import smtplib
message = """From: Sender <sender@randomemail.com>
To: Receiver <receive@randomemail.com>
Content-type: text/html
Subject: It works!
<b>It works!</b>\n
<br/>
<br/>
Do not reply to this email or god will strike you down.
"""
server = smtplib.SMTP('mysmtpserver')
sender = 'sender'
receiver = 'receive'
server.set_debuglevel(True)
server.sendmail(sender, receiver, message)
它按预期执行。而且我收到的电子邮件中确实有 HTML 格式。
但是,如果我将代码作为函数放在“更大”文件中以及其他函数中:
def emailer():
import smtplib
message = """From: Sender <sender@randomemail.com>
To: Receiver <receive@randomemail.com>
Content-type: text/html
Subject: It works!
<b>It works!</b>\n
<br/>
<br/>
Do not reply to this email or god will strike you down.
"""
server = smtplib.SMTP('mysmtpserver')
sender = 'sender'
receiver = 'receive'
server.set_debuglevel(True)
server.sendmail(sender, receiver, message)
然后调用函数:
emailer()
我收到的电子邮件没有 HTML 格式,主题和正文完全混乱,然后被我的电子邮件提供商过滤为垃圾邮件。
我确实需要一些关于如何解决这个问题的解释,如果我能以某种方式改进我创造的东西,我也需要建议。
谢谢
解决方案
您的第二个版本在消息字符串中有大量额外的空格(每行开头的空格)。
第一个版本:
From: Sender <sender@randomemail.com>
To: Receiver <receive@randomemail.com>
Content-type: text/html
Subject: It works!
<b>It works!</b>\n
<br/>
<br/>
Do not reply to this email or god will strike you down.
第二个版本:
From: Sender <sender@randomemail.com>
To: Receiver <receive@randomemail.com>
Content-type: text/html
Subject: It works!
<b>It works!</b>\n
<br/>
<br/>
Do not reply to this email or god will strike you down.
如果两封电子邮件的内容有任何区别,那很可能就是这样。
推荐阅读
- node.js - Firebase,如何将身份验证服务与 node.js RESTapi 后端一起使用
- html - 如何使用 CSS 剪辑路径属性设置自定义形状的背景?
- javascript - 使用溢出时如何获取scrollY的值?
- python - 如何将一维 ndarray 列表转换为二维 ndarray (mxnet ndarray)
- html - 浮动设置无效
- ios - 如何为分段控制选择设置动画?
- java - 春季无法捕获休眠异常
- php - 将 phpmailer 与 SMTP 一起用于我的 Web 应用程序
- java - 为什么 AutowiredAnnotationBeanPostProcessor 支持@Value?
- c# - 在 C# 中从 .dll 访问注册表项