Я простая душа с простыми потребностями, и я пытаюсь настроить форму. Я ненавижу формы.
Он должен иметь JavaScript для передачи данных, ему необходимо отправить электронное письмо с данными на адрес электронной почты, и ему необходимо перенаправить посетителей на PDF-файл. CGI всегда сбивал меня с толку, а я плохо разбираюсь в JavaScript.
Я уже сделал html, но действие post и JavaScript меня убивают. Прошло 4 часа поисков. Воткните в меня вилку. Я задолбался.



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


Хорошо, во-первых, нам нужно уточнить вашу формулировку. JavaScript и Java - два существенно разных языка.
Чтобы отправлять почту, вам нужно использовать любой язык, который вы используете, в сочетании с SMTP-сервером, который должен быть тем, что фактически отправляет электронную почту, а не JavaScript, который является клиентским.
Пример использования JavaScript для отправки сообщений на SMTP-сервер можно найти здесь (хотя я бы не рекомендовал этот метод, поскольку ActiveX является эксклюзивным для IE): http://www.ostrosoft.com/smtp_component/smtp_javascript.asp
В конечном счете, с помощью JavaScript лучший метод, который вы бы использовали, - это просто публикация на не-SMTP-сервере, который затем отправляет данные на SMTP-сервер.
Если вы действительно используете Java, вы можете добавить дополнительную библиотеку под названием JavaMail, чтобы упростить отправку почты, хотя, опять же, вам необходимо взаимодействовать с SMTP-сервером.
Пример JavaMail можно найти здесь: http://www.javapractices.com/topic/TopicAction.do?Id=144
Ваша форма звучит как форма FormMail, которая предназначена исключительно для отправки почты, на самом деле ей не нужен javascript, но, безусловно, требуется множество скрытых полей, и вся информация, которую вы особенно хотите извлечь, должна иметь свои собственные разделы. / поля в форме.
Итак, в чем вопрос? -)
Такие средства, как вам, необходимо проверить форму, а затем отправить ее на сервер, который затем повторно проверяет (javascript не может быть навязан) и отправляет почтовый запрос на сервер электронной почты.
Я бы порекомендовал PHP для сервера, который повторно проверяет форму и отправляет запрос на сервер электронной почты, потому что это легко и широко поддерживается.
Скажем, у вас есть этот HTML
<script type = "text/javascript" src = "jquery.js"></script>
<script type = "text/javascript" src = "script.js"></script>
<form id = "emailForm" method = "post" action = "mail.php">
<input type='text' name='firstName' id = "firstName"><br>
<input type='text' name='lastName' id='lastname'><br>
<input type='submit' value='submit' name='submit'>
</form>
Вы можете проверить, что пользователь что-то ввел во все поля, используя javascript и jQuery. Скажем, в файле script.js у вас есть:
var formIsOkay = true;
$(document).ready( function() {
$('#emailForm').submit( function() {
$('#emailForm input').each( function() {
if ( this.val() == '' ) { formIsOkay = false; }
}
return formIsOkay;
}
}
И тогда в email.php у вас будет что-то вроде этого:
<?php
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Form';
$message = 'Hello, the following variables were supplied:<br>';
foreach($_POST as $key => $val){
$message .= "$key = $val<br>";
}
$message = wordwrap($message, 70);
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "To: $to" . "\r\n";
$headers .= "From: $from" . "\r\n";
mail($to, $subject, $message, $headers);
?>
Для этого вам понадобится PHP, работающий на вашем сервере, и настройка SMTP-сервера на php, но у большинства серверов он есть. Обратите внимание, что PHP не обновляет форму прямо сейчас, поэтому, когда кто-то отправляет пустую форму, она все равно будет отправлена по электронной почте.
Клиент запросил javascript. Просто пытаюсь доставить.