代码之家  ›  专栏  ›  技术社区  ›  Ali H

如何用javascript发送预定的电子邮件?

  •  1
  • Ali H  · 技术社区  · 6 年前

    我正在使用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天后。那么,通过添加一些行或以其他方式实现这一点是可能的吗?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Maurici Abad    6 年前

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

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

    如果你可以把它放在网站上,你也可以运行php,所以我建议你使用php。您可以这样做:

    1. 在HTML中 use a Form to send the content of the email via POST 到一个php文件。

    2. 上载一个PHP文件,该文件读取 POST parameters saves a file (例如JSON),其中包含每个电子邮件的时间戳和电子邮件内容。

    3. 上传一个php文件,读取“待发送电子邮件”文件,然后 sends the emails 具有过去的时间戳并从文件中删除该邮件的。

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

        2
  •  1
  •   Vishal choudhary    6 年前

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