Как я могу отправить содержимое формы по электронной почте с помощью JavaScript? - PullRequest
0 голосов
/ 04 марта 2010

У меня есть HTML-форма обратной связи, результаты которой мне нужно отправить на электронный адрес. Как мне это сделать в JavaScript?

Ответы [ 11 ]

2 голосов
/ 04 марта 2010

Вы не можете. Вам нужно будет использовать какие-то фоновые технологии, такие как python, ruby, coldfusion, php или ASP, чтобы отправить их на вашу электронную почту.

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

Вот бесплатный PHP-сервис , который позволит вам сделать что-то подобное, но просто помните, что этот вид сервиса обычно ненадежен.

1 голос
/ 04 марта 2010

Один из способов сделать это - это

<form action="mailto:example@example.com">

при отправке этой попытки попытается отправить форму по электронной почте на указанный адрес электронной почты, это довольно неприятное решение, поскольку оно основано на клиенте, имеющем правильно настроенный почтовый клиент. Также у вас нет контроля над представлением электронной почты. см. Остерегайтесь формы Mailto Action для некоторых ловушек.

1 голос
/ 04 марта 2010

Ваш единственный вариант - отправить его в обычной форме, а затем отправить на сервер.

0 голосов
/ 04 марта 2010

вы должны использовать скрипты на стороне сервера, такие как php или perl

отправлять содержимое формы на php на стороне сервера.написать с помощью функции sendmail в php.

ваш контент будет отправлен на это письмо.

0 голосов
/ 04 марта 2010

Если вы хотите что-то, что даже близко подходит к работе для разумного числа людей, то, соблюдая ограничения вопроса, вам нужно использовать серверный JavaScript (особенности зависят от конкретной реализацииSSJS, который вы используете, см. Whitebeam для примера ).

0 голосов
/ 04 марта 2010

Вы не можете сделать это с чистым javascript, вы можете использовать ajax для этого тоже, но за кадром должен быть сервер язык стороны для отправки электронного письма.

0 голосов
/ 04 марта 2010

Вы не можете отправлять письма с на стороне клиента javascript. Отправьте форму на серверный скрипт, такой как PHP / JSP / ASP и т. Д., И отправьте почту из этого скрипта.

0 голосов
/ 04 марта 2010

это невозможно :), но вы можете использовать jQuery и серверное приложение, написанное на python (django), php, asp.net и т. Д.

Простой скрипт jQuery:

$('#button').click(function(){
    $.post('backend.php',
        {message:$('#message').val(),
         name: $('#name').val(),
         email:$('#email').val()},
         function(data) {
             $('.result').html(data);
         });
});

И PHP скрипт:

<?php
if($_POST['message']) 
{
    $body = "Name: ".$_POST['name'];
    $body .= "<br>Email: ".$_POST['email'];
    $body .= "<br>Message: ".$_POST['message']
    if(mail("yourmail@mail.com","Subjects",$body))
        echo 'true';
    else echo 'false;';
}
?>

это просто, без исправлений безопасности.

0 голосов
/ 04 марта 2010

Кроме, возможно, AJAX, я не знаю другого пути.

РЕДАКТИРОВАТЬ: Чтобы уточнить - AJAX будет вызывать другую функцию, например PHP, чтобы фактически отправить почту Вам нужно будет реализовать это на сервере.

EDIT2: Вот статья

0 голосов
/ 04 марта 2010

У вас есть два варианта:

1) Используйте ссылку mailto. Javascript не является действительно необходимым, хотя вы можете использовать Javascript, чтобы «щелкнуть» ссылку mailto. Это приведет к открытию почтового клиента пользователя с новым электронным письмом, предварительно заполненным адресом электронной почты получателя. mailto links Существует множество причин, по которым mailto links ненадежны (см. Комментарии ниже). Они не рекомендуются.

2) Отправьте форму обратно на сервер, затем отправьте электронное письмо с сервера. Какой бы код на стороне сервера (php, c # и т. Д.) Должен иметь возможность отправлять электронную почту. Таким образом, вы можете гарантировать, что письмо было отправлено.

Вы не можете молча отправлять электронную почту из браузера. Это должно происходить либо с помощью пользователя, либо на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...