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

可以在使用Python发送的电子邮件中使用JavaScript吗?,javascript,python,html,css,email,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['Subj

可以在使用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()
me=“我的。email@gmail.com"
你是我的朋友。email@gmail.com"
msg=MIMEMultipart('alternative')
msg['Subject']=“时钟”
msg['From']=我
msg['To']=您
html=”“”\
钟

HH

毫米

SS

""" text=html2text(html) part1=MIMEText(文本“纯”) part2=MIMEText(html,'html') 附加信息(第1部分) 附加信息(第2部分) s=SMTP('SMTP.gmail.com:587') s、 ehlo() s、 starttls() s、 登录(“我的。email@gmail.com“,“我的密码”) s、 sendmail(我,你,msg.as_string()) s、 退出
这段代码中HTML的完整版本给了我一个正常运行的时钟,但是如果我尝试使用Gmail将它发送给我自己,我会收到不同的结果

查看HTML:

在Gmail中:

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


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

简短回答:没有。你不能将JavaScript用于电子邮件模板


棘手的方法:您可以处理相关文件,并使用服务器端语言在模板文件中获取解析后的值

Example:

clock.js
// code for js

template.php
// echo the value
// The value is rendered in html and works in email template too.
但这种情况不适合您,因为您正试图实现倒计时时钟。这仅适用于静态值

但是,链接到外部页面内容将帮助您显示计时器


对于您的情况,您可以尝试使用


希望,这有帮助

电子邮件html中不支持javascript,但至少您可以在页面上放置一个带有时钟倒计时的链接。

大多数电子邮件客户端/服务不处理javascript…出于明显的安全原因,发送带有javascript代码的电子邮件是绝对可能的,但任何正常的电子邮件客户端(尤其是基于web的客户端)将忽略任何包含的JavaScript代码。至少可以说,能够发送一封包含任意JavaScript代码的电子邮件并由收件人的客户端运行是一个很大的隐私和安全问题。@Frxstrem所以,考虑到我正在将它发送给使用Gmail的人,发送给使用Gmail的人?不使用JavaScript。。no@charlietfl有没有办法,,也许没有Javascript可以做到这一点?你说的服务器端语言是什么意思?在这种情况下,python是通过链接到外部页面来生成HTMLB的,你的意思是,或者你可以以某种方式使用iframe吗?