Могу ли я отправить письмо с помощью JavaScript - PullRequest
10 голосов
/ 15 декабря 2010

Можно ли отправлять электронные письма, используя только JavaScript?

Ответы [ 6 ]

4 голосов
/ 28 сентября 2017

РЕДАКТИРОВАТЬ: [ПРЕДУПРЕЖДЕНИЕ!] README:

Это библиотека ThirdsParty, которая вызывает внешний сервер, будьте осторожны с информацией, которую вы отправляете.


Другим решением на JS вы можете использовать библиотеку с именем smtpjs

Добавьте следующую библиотеку в ваш HTML в заголовке:

<script src="https://smtpjs.com/smtp.js"></script>

Используйте это без защиты :

Email.send("from@you.com",
"to@them.com",
"This is a subject",
"this is the body",
"smtp.yourisp.com",
"username",
"password");

Используйте это с защитой :

Email.send("from@you.com",
"to@them.com",
"This is a subject",
"this is the body",
{token: "63cb3a19-2684-44fa-b76f-debf422d8b00"});
3 голосов
/ 15 декабря 2010

На самом деле возможно и не так уж сложно построить SMTP-клиент в Javascript .

Но этому SMTP-клиенту все равно нужно будет поговорить с SMTP-сервером для доставки электронной почты. И SMTP-серверы, открытые для всех, в наше время очень редки (потому что они быстро становятся каналами для спама, а затем блокируются и / или закрываются).

Однако, если человек, использующий клиент, может предоставить SMTP-сервер и учетные данные пользователя для него (как и для любого другого почтового клиента общего назначения), то да, вы можете отправлять электронные письма, используя только javascript.

3 голосов
/ 15 декабря 2010

Да. Использование веб-службы. Вы можете позвонить в службу AJAX. EmailYak - один из таких сервисов (сейчас он находится в закрытой бета-версии).

EDIT: Это все еще решение на стороне сервера, так как фактическое электронное письмо отправляется с сервера. Вы просто общаетесь с сервером через AJAX и просите его отправить электронное письмо.

1 голос
/ 23 октября 2017

Обратите внимание, что smtpjs использует службу, расположенную по адресу http://smtpjs. Это на самом деле не SMTP-клиент Javascript.Эта «утилита» означает, что вы загружаете свои учетные данные электронной почты на сервер smtpjs.com. Используйте с особой осторожностью .

1 голос
/ 15 декабря 2010

Если вы хотите отправить сообщение «без вывода сообщений» из процесса SMTP, то это нужно сделать на сервере или с помощью размещенной службы.

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

1 голос
/ 15 декабря 2010

Вы можете перенаправить на адрес mailto:someone@example.com?cc=someone_else@example.com&subject=This%20is%20the%20subject&body=This%20is%20the%20body, который говорит браузеру запустить почтовый клиент, который затем делает почту готовой к отправке - пользователь просто должен нажать «отправить».

Код:

document.location="mailto:someone@example.com?cc=someone_else@example.com&"+
    "subject=This%20is%20the%20subject&body=This%20is%20the%20body";
...