您可以在使用Python发送的电子邮件中使用JavaScript吗?

时间:2017-11-04 20:59:19

标签: javascript python html css email

您可以在使用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:

enter image description here

在Gmail中:

enter image description here

这表明,CSS的部分加载,但其他类似的字体或字体大小则没有。它还显示JavaScript无法加载。 (通常在浏览器中查看HTML代码会生成一个正常运行的时钟,而在电子邮件中则不会。)

有没有办法用这个时钟发送电子邮件?

2 个答案:

答案 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中不受支持,但至少您可以通过倒计时来放置指向该页面的链接。