Данную форму можно и через com_contact отправлять
Отправка писем из формы в материале
Нужно взять модуль com_contact и поправить его код в соответствии с моей формой - и всё?
Казалось бы такая простая вещь, а сколько уже мучений.
А я наверно понял, генератор каркаса компонента который сейчас на сайте работает для версии 3.2 если у вас ниже то будет эта ошибка (
Да, Joomla версии 3.0
Так и положи в корень сайта файл sendmail.php
Давно положил, а ошибок миллион. в Chrome работает, в остальных браузерах нет. Да и в Chrome то работает, то нет. Простая отправка формы на мыло!
Вот же всё логично -
Вот код а custom HTML:
<script>
function sendForm(form, success)
{
var request = new XMLHttpRequest();
request.open(form.method, form.action);
request.onreadystatechange = function() {
if (request.readyState == request.DONE) {
if (request.status == 200) {
success(request.responseText);
}
}
};
request.send(new FormData(form));
}
</script>
<h3>Форма отправки обращения</h3>
<form onsubmit="return sendForm(this, alert), false" action="../sendmail.php" method="post">
<p><input type="text" size="40" placeholder="Ваше имя" name="user"></p>
<p><input type="text" size="40" placeholder="E-mail" name="email"></p>
<p><input type="text" size="40" placeholder="Тема письма" name="subj"></p>
<p>Текст обращения<Br>
<textarea placeholder="Текст обращения" name="text" cols="40" rows="6"></textarea></p>
<p><input type="submit" value="Отправить" name="submit_form1"></p>
</form>
А вот код скрипта sendmail.php:
<?php
//header('Content-Type: text/html; charset=utf-8');
if(isset($_POST['submit_form1']))
{
$name = $_POST['user'];
$mail = $_POST['email'];
$subj = $_POST['subj'];
$body = "Имя отправителя: ".$name."\nE-mail отправителя: ".$mail."\n\nТекст письма:\n\n".$_POST['text'];
if($name =! "" && $mail != "" && $subj != "" && $_POST['text'] != "")
{
if(mail("mail@mail.ru", $subj, $body, "Content-Type: text/plain; charset=utf-8\n"))
echo 'Ваше обращение успешно отправлено!'; //lrm@uez.ru
else echo 'Обращение не отправлено, попробуйте позже!';
}
else echo 'Вы не заполнили все поля! Попробуйте ещё раз.';
}
?>
Работает только в Chrome, и то раз на раз не приходится, выдаёт такое сообщение:
Warning: mail()[function.mail]: Could not execute mail delivery program '/usr/sbin/sendmail -t -i' in /home/uez-host/uez.ru/docs/sendmail.php on line 11
К слову в 11 строке и есть попытка отправить мыло: mail(....)
Потом если обновить страницу с формой и снова отправить - всё хорошо работает. Это только в Chrome, в остальных вообще даже до скрипта дело не доходит - видать грабли с формированием запроса.
Ну как тут голову не сломать? Я уже всё перепробовал...