【问题标题】:How to send scheduled email in javascript?如何在javascript中发送预定的电子邮件?
【发布时间】:2018-12-16 17:28:22
【问题描述】:

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

【问题讨论】:

  • 您可以在服务器上运行 cron 并使用 node.js - 在网页中,页面必须在发送时打开
  • 我认为这在网站前端是不可能的,它需要人们在发送电子邮件的时间内保持页面打开。一旦关闭页面,脚本就会停止。我相信您需要在后端服务器上执行此操作。
  • 您应该切换到 node.js 或其他可以保持打开/客户端不必运行的编程语言。

标签: javascript email smtp gmail schedule


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您不能在前端执行此操作,因为浏览器上的 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 parameterssaves a file(例如 JSON),对于每封电子邮件,该文件包含:应发送的时间戳和电子邮件内容。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 2012-11-18
      • 2016-04-02
      • 2012-11-14
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多