您可以在使用Python发送的电子邮件中使用JavaScript吗?
我的目标是在电子邮件中发送一个工作时钟。
我正在尝试使用Python来实现这一目标。我正在使用IDLE和Python库stmplib,email和html2text来发送电子邮件。我的代码看起来像下面显示的代码。我省略了一些细节(样式和脚本),因为它们并不重要。
me = "my.email@gmail.com"
you = "my.email@gmail.com"
msg = MIMEMultipart('alternative')
msg['Subject'] = "Clock"
msg['From'] = me
msg['To'] = you
html = """\
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Clock</title>
<style></style>
</head>
<body>
<div class="clock">
<p class="clockhour">HH</p>
<p class="clocksym1">:</p>
<p class="clockminute">MM</p>
<p class="clocksym2">:</p>
<p class="clocksecond">SS</p>
</div>
<script type="text/javascript"></script>
</body>
</html>
"""
text = html2text(html)
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
s = SMTP('smtp.gmail.com:587')
s.ehlo()
s.starttls()
s.login("my.email@gmail.com", "my password")
s.sendmail(me, you, msg.as_string())
s.quit()
此代码中HTML的完整版本为我提供了正常运行的时钟,但如果我尝试使用Gmail将其发送给自己,我会收到不同的结果。
查看HTML:
在Gmail中:
这表明,CSS的部分加载,但其他类似的字体或字体大小则没有。它还显示JavaScript无法加载。 (通常在浏览器中查看HTML代码会生成一个正常运行的时钟,而在电子邮件中则不会。)
有没有办法用这个时钟发送电子邮件?
答案 0 :(得分:2)
简答:不可以。您不能将JavaScript用于电子邮件模板。
棘手的方法:您可以处理相关文件,并使用服务器端语言在模板文件中获取解析后的值。
Example:
clock.js
// code for js
template.php
// echo the value
// The value is rendered in html and works in email template too.
但是这种情况并不适合你,因为你正试图实现倒计时时钟。这仅适用于静态值。
但是,链接到外部页面内容将帮助您显示计时器。
对于您的情况,您可以尝试使用http://motionmailapp.com/
希望,这有帮助!
答案 1 :(得分:1)
javascript在电子邮件html中不受支持,但至少您可以通过倒计时来放置指向该页面的链接。