如何用javascript发送定时电子邮件



我使用SMTPJS通过Gmail SMTP发送电子邮件。这里是我的简单工作代码:

<script src="https://smtpjs.com/v2/smtp.js"></script>
sendEmail(to, subject, body){ 
Email.send(
"SITENAME noti.sitename@gmail.com", //from
to, //to
subject, //subject
body,   //body
"smtp.gmail.com", //smtp host
"noti.sitename@gmail.com", //username account
"Noti-Password",    //password account
message=>{
alert("sent");
}
)
}

我需要做的是发送一封应该在日期前发送的电子邮件。例如2周后或30天后。那么,通过添加一些行或采取其他方式,这是可能的吗?

我认为只有JavaScript是不可能的。为此,您需要在特定时间打开浏览器,它可以从服务器端进行管理,但就我所关心的客户端而言,它只能通过必须嵌入客户端浏览器的扩展来完成。你可以使用后台或慢跑脚本在特定时间发送消息

您不能在前端执行此操作,因为浏览器上的JavaScript仅在打开网站时执行。

要做到这一点,您需要一个服务器每X次运行一个代码,这就是cron。这些代码可以用Python、JavaScript(Node.js(或PHP等语言编写。

如果你可以在网站上托管它,你可能也可以运行PHP,所以我建议你使用PHP。你会这样做:

  1. 在HTML中,使用Form通过POST将电子邮件内容发送到PHP文件。

  2. 上传一个PHP文件,该文件读取POST参数并保存一个文件(例如JSON(,该文件包含每个电子邮件的时间戳和电子邮件内容。

  3. 上传一个PHP文件,读取"待发送的电子邮件"文件,发送具有过去时间戳的电子邮件,并从文件中删除该邮件。

  4. 设置一个cron,每天早上8点运行第二个PHP文件。

最新更新