Помощник
|
Форма перестала отправлять письма. |
AndreySmith
|
Сообщение
#1
|
||
|
|
||
|
|||
alexdrob |
15.10.2009, 20:40;
Ответить: alexdrob
Сообщение
#2
|
|
это вопрос скроей к хостеру, возможно они отключили функцию mail или чтото с их smtp сервером
я не пользуюсь функцией mail, я как то в интернете нашел код создаёшь ящик на mail.ru например и заполняешь его данные в код, с него будут письма идти [PHP] ob_implicit_flush(); $address = 'smtp.mail.ru'; $port = 25; $login = 'Логин на сервере'; $pwd = 'пароль на сервере'; $from = 'логин на сервере@mail.ru'; $message = iconv('cp1251','utf-8',$message); $subject = iconv('cp1251','utf-8',$subject); try { $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket < 0) { throw new Exception('socket_create() failed: '.socket_strerror(socket_last_error())."\n"); } $result = socket_connect($socket, $address, $port); if ($result === false) { throw new Exception('socket_connect() failed: '.socket_strerror(socket_last_error())."\n"); } read_smtp_answer($socket); write_smtp_response($socket, 'EHLO '.$login); read_smtp_answer($socket); write_smtp_response($socket, 'AUTH LOGIN'); read_smtp_answer($socket); write_smtp_response($socket, base64_encode($login)); read_smtp_answer($socket); write_smtp_response($socket, base64_encode($pwd)); read_smtp_answer($socket); write_smtp_response($socket, 'MAIL FROM:<'.$from.'>'); read_smtp_answer($socket); write_smtp_response($socket, 'RCPT TO:<'.$to.'>'); read_smtp_answer($socket); write_smtp_response($socket, 'DATA'); read_smtp_answer($socket); $message = "To: $to\r\n".$message; $message = "Subject: $subject\r\n".$message; $message = "Content-type: text/plain; charset=utf-8\r\n".$message; write_smtp_response($socket, $message."\r\n."); read_smtp_answer($socket); write_smtp_response($socket, 'QUIT'); read_smtp_answer($socket); $snd=true; } catch (Exception $e) { echo "\nError: ".$e->getMessage(); } if (isset($socket)) { socket_close($socket); } function read_smtp_answer($socket) { $read = socket_read($socket, 1024); if ($read{0} != '2' && $read{0} != '3') { if (!empty($read)) { throw new Exception('SMTP failed: '.$read."\n"); } else { throw new Exception('Unknown error'."\n"); } } } function write_smtp_response($socket, $msg) { $msg = $msg."\r\n"; socket_write($socket, $msg, strlen($msg)); } [/PHP] заполняешь $to - кому $message - письмо $subject - тема для отправки |
|
|
AndreySmith
|
Сообщение
#3
|
|
Та походу хостер...
"...создаёшь ящик на mail.ru например и заполняешь его данные в код, с него будут письма идти" - круто))) :goodpost: Положил в копилку, пригодится))) Спасибо))) |
|
|
bufer |
22.10.2009, 15:09;
Ответить: bufer
Сообщение
#4
|
|
блин, всю голову сломал и не пойму, почему из формы обратной связи на сайте, не отправляется только поле "e-mail".... все остальные поля приходят...
помогите кто может.. на странице контакты: <body> <div style="background-image:url(bg.gif); background-repeat:no-repeat; width:300px; height:330px" align="center"> <form action="send.php" method="POST"> Ваше имя<br/> <input name="name" size="30" type="text" /><br/> Ваш e-mail<br/> <input name="email" size="30" type="text" /><br/> Сообщение<br/> <textarea name="message" cols="23" rows="5"></textarea> <br/>Введите код подтверждения: <img src="img/image.php" alt="" width="120" height="33" border="0" /><br/> <input style="margin:5px;font-size:30px; font-color:blue; height:34px;width:120px;" type="text" name="sid" value="" size="6" maxlength="6"/> <br/><br/> <input name="do" value="Отправить" type="submit"/> </form> <p><font color=#FF0000><b><u>Оставляйте свои полные контакты в теле сообщения.</u></b></font></p> </div> </body> файл send.php [PHP]<?php //Запускаем сессию session_start(); //Подключаем функции include("functions.php"); //Подключаем файл конфигурации include("config.php"); //Подключаем файл шаблона include("tpl.php"); //Создаем шапку echo '<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Обратная связь</title> <style> p { font-family:Verdana, Arial, Helvetica, sans-serif; font-size:14px; font-weight:600; color:#747474; } </style> </head> <body>'; //Проверяем совпадает ли переданный идентификатор с реальным if($_SESSION['uid'] == $_POST['sid']){ //Разрушаем сессию session_destroy(); //Чистим входящие данные $name = strip_tags(stripslashes(substr($_POST['name'],0,20))); $mail = strip_tags(stripslashes(substr($_POST['email'],0,30))); $message = strip_tags(stripslashes(substr($_POST['message'],0,3000))); //Проверяем, была ли нажата кнопка if($_POST['do']) { //Проверяем, было ли введено имя if($name != '') { //Запускаем функцию по проверке e-mail адреса if($mail != '') { //Проверяем, было ли введено сообщение письма if($message != '') { //Передаем функции необходимые аргументы if(sendmail($mailto,"Сообщение с сайта",$tpl,$headers,$mail) !== FALSE) { //При условии что функция сработала - выводим сообщение об удачно завершенной операции echo '<p>Сообщение отправлено<br/><a href="contact.php">назад</a></p>'; } else { //Иначе, сообщаем об ошибке echo '<p>Возникла ошибка при отправке, повторите позднее<br/><a href="contact.php">назад</a></p>'; } } else {echo '<p>Введите комментарий <a href="contact.php">назад</a></p>';} } else {echo '<p>Введите корректный электронный адрес <a href="contact.php">назад</a></p>';} } else { echo '<p>Введите имя <a href="contact.php">назад</a></p>'; } } else {echo '<p>Кнопка не была нажата <a href="contact.php">назад</a></p>'; }; } //Здесь срабатывает исключение, если страница была обновлена клавишей F5 else { echo '<p>Ошибка. Код подтверждения введен неверно</p>'; //Разрушаем сессию @session_destroy();} echo '</body></html>'; //Разрушаем сессию @session_destroy();[/PHP] файл functions.php [PHP]<?php function checkmail($mail) { // режем левые символы и крайние пробелы $mail=trim($mail); // функцию pregtrim() возьмите выше в примере // если пусто - выход if (strlen($mail)==0) return -1; if (!preg_match("/^[a-z0-9_-]{1,20}+(\.){0,2}+([a-z0-9_-]){0,5}@(([a-z0-9-]+\.)+(com|net|org|mil|". "edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-". "9]{1,3}\.[0-9]{1,3})$/is",$mail)) return -1; return $mail; } function sendmail($mail,$subject,$message,$headers) { if(mail($mail,$subject,$message,$headers)) { return TRUE;} else {return FALSE;} } ?>[/PHP] файл tpl.php [PHP] <?php $tpl = '<html> <head> </head> <body bgcolor="#D9D9D9"> <table align="center" width="400" border="0" cellspacing="0" cellpadding="0"> <tr bgcolor="#BEBEBE"> <td>Письмо от:</td> <td>'.$name.'</td> <td>'.$mail.'</td> </tr> <tr> <td colspan="3">'.$message.'</td> </tr> <tr bgcolor="#B4B4B4"> <td> </td> <td> </td> <td> </td> </tr> </table> </body> </html>'; ?>[/PHP] файл config.php [PHP] <?php // Для отправки e-mail в виде HTML устанавливаем необходимый mime-тип и кодировку $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=windows-1251' . "\r\n"; // Дополнительные заголовки $headers .= 'From: FeedbackForm' . "\r\n"; //Здесь укажите электронный адрес, куда будут уходить сообщения $mailto = "ask@business-consult.su"; ?> [/PHP] |
|
|
alexdrob |
22.10.2009, 15:16;
Ответить: alexdrob
Сообщение
#5
|
|
[PHP]if(sendmail($mailto,"Сообщение с сайта",$tpl,$headers,$mail) !== FALSE) { [/PHP]
mail - 5й параметр [PHP]function sendmail($mail,$subject,$message,$headers) { if(mail($mail,$subject,$message,$headers)) { return TRUE;} else {return FALSE;} } [/PHP] тут нет 5го параметра вообще, значение сюда просто не попадает с формы. |
|
|
alexdrob |
22.10.2009, 15:20;
Ответить: alexdrob
Сообщение
#6
|
|
например так измените
[PHP]function sendmail($mail,$subject,$message,$headers,$from) { $headers.="From: $from \r\n"; if(mail($mail,$subject,$message,$headers)) { return TRUE;} else {return FALSE;} }[/PHP] |
|
|
alexdrob |
22.10.2009, 15:49;
Ответить: alexdrob
Сообщение
#7
|
|
файл functions.php
я там ; пропустил, поправил уже |
|
|
bufer |
22.10.2009, 15:54;
Ответить: bufer
Сообщение
#8
|
|
|
|
|
alexdrob |
22.10.2009, 16:01;
Ответить: alexdrob
Сообщение
#9
|
|
не досмотрел я файл config.php
уберите там $headers .= 'From: FeedbackForm' . "\r\n"; |
|
|
bufer |
22.10.2009, 16:12;
Ответить: bufer
Сообщение
#10
|
|
|
не досмотрел я файл config.php уберите там $headers .= 'From: FeedbackForm' . "\r\n"; СЛУШАЙ, РЕСПЕКТ ТЕБЕ БОЛЬШОЙ! ПРАВДА ВСЕ ЗАРАБОТАЛО!!!! :goodpost::goodpost::goodpost:
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Форма регистрации вордпресс. Привязка ссылок | 0 | plscomeback | 5590 | 29.3.2016, 19:29 автор: -plscomeback- |
|
Калькулятор + форма заказа | 0 | adsprosto | 7303 | 11.4.2015, 0:30 автор: -adsprosto- |
|
почтовая форма | 2 | Nicolai_hb | 4288 | 31.8.2014, 13:15 автор: -wieppir- |
|
Есть форма, как отправить с нее инфу на почту? | 0 | LipGrad | 2767 | 13.4.2014, 12:20 автор: -LipGrad- |
|
Ajax форма | 0 | jollar | 1076 | 19.1.2014, 14:36 автор: jollar |
Текстовая версия | Сейчас: 28.3.2024, 13:21 |