Как отправить запланированное письмо в javascript? - PullRequest
0 голосов
/ 16 декабря 2018

Я использую 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 ]

0 голосов
/ 16 декабря 2018

Вы не можете сделать это во внешнем интерфейсе, потому что JavaScript в браузере выполняется только при открытом сайте.

Чтобы сделать это, вам нужен сервер для запуска кода каждый раз X, этохрон.Этот код может быть написан на таких языках, как Python, JavaScript (Node.js) o PHP.

Если вы можете разместить его на веб-сайте, вы, вероятно, также можете запустить PHP, поэтому я рекомендую вам использовать PHP.Вот как вы это сделаете:

  1. В вашем HTML используйте форму для отправки содержимого письма через POST в файл PHP.

  2. Загрузить файл PHP, который читает параметры POST и , сохраняет файл (например, JSON), который содержит для каждого электронного письма: отметку времени, в которойдолжен быть отправлен и содержимое электронной почты.

  3. Загрузите файл PHP, который читает файл «ожидающие отправки письма», и отправляет электронные письма , которые имеют временную метку иудаляет эту почту из файла.

  4. Установите cron, который запускает второй PHP-файл каждый день в 8 часов утра.

0 голосов
/ 16 декабря 2018

Я думаю, что это невозможно только с помощью JavaScript. Для этого вам нужно открыть браузер на определенное время, которым он может управляться со стороны сервера, но, что касается меня, со стороны клиента, это может быть сделано только с расширением, которое должно быть встроено.в браузере клиента.Вы можете использовать фоновый или cantent-скрипт для отправки сообщения в определенное время

...