Я использую SMTPJS для отправки писем через Gmail SMTP. Вот мой простой рабочий код:
<script src = "https://smtpjs.com/v2/smtp.js"></script>
sendEmail(to, subject, body){
Email.send(
"SITENAME [email protected]", //from
to, //to
subject, //subject
body, //body
"smtp.gmail.com", //smtp host
"[email protected]", //username account
"Noti-Password", //password account
message=>{
alert("sent");
}
)
}
Что мне нужно сделать, так это отправить электронное письмо, которое должно быть отправлено по дате. Например, через 2 недели или через 30 дней. Возможно ли это, добавив несколько строк или сделав другой способ?
Я не думаю, что это возможно в интерфейсе веб-сайта, это потребует от человека держать страницу открытой в течение определенного времени, чтобы отправить электронное письмо. Как только вы закрываете страницу, скрипт останавливается. Я считаю, что вам нужно будет сделать это на внутреннем сервере.
Вы должны переключиться либо на node.js, либо на другой язык программирования, который вы можете оставить открытым / клиенту не нужно его запускать.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, что это невозможно только с JavaScript.Для этого вам нужно открыть свой браузер на это конкретное время, им можно управлять со стороны сервера, но, насколько я понимаю, с клиентской стороны, это можно сделать только с расширением, которое должно быть встроено в клиентский браузер. . Вы можете использовать фоновый сценарий или скрипт Cantent для отправки сообщения в определенное время.
Вы не можете сделать это во внешнем интерфейсе, потому что JavaScript в браузере выполняется только во время открытия сайта.
Для этого вам понадобится сервер для запуска кода каждый раз X, это cron. Этот код может быть написан на таких языках, как Python, JavaScript (Node.js) или PHP.
Если вы можете разместить это на веб-сайте, вы, вероятно, также сможете запустить PHP, поэтому я рекомендую вам использовать PHP. Вот как бы вы это сделали:
В вашем HTML использовать форму для отправки содержимого электронного письма через POST в файл PHP.
Загрузите файл PHP, который читает Параметры POST и сохраняет файл (например, JSON), который содержит для каждого сообщения электронной почты: метку времени, в которой следует отправить, и содержимое электронной почты.
Загрузите файл PHP, который читает файл «ожидающих отправки писем» и отправляет электронные письма, имеющий прошедшую временную метку, и удаляет это письмо из файла.
Настройте cron, который запускает второй файл PHP каждый день в 8 утра.
Вы можете запустить cron на сервере и использовать node.js - на веб-странице страница должна быть открыта во время отправки