X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Форма перестала отправлять письма.
AndreySmith
AndreySmith
Topic Starter сообщение 15.10.2009, 20:32; Ответить: AndreySmith
Сообщение #1


Привет)))

Подскажите, почему может такое случиться - сделал форму обратной связи, работает. На удаленный сервер поставли - работает, письма приходят все как надо. Месяцок проходит проверяю форму - не работает((( Письма не приходять ни на mail.ru ни на gmail.com ни на yahoo.com... Т.е. я так понимаю ip где форма не могли забанить, сразу все три конторы (тем более что до этого ниразу с формы писма не приходили на gmail.com и yahoo.com).

На стриничке с формами ничего практически не менялось, разве что добавился в самый низ странички скрипт Google Analytics, но он какбэ не должен мешать.

Я в шоке.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
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
AndreySmith
Topic Starter сообщение 16.10.2009, 2:14; Ответить: AndreySmith
Сообщение #3


Та походу хостер...

"...создаёшь ящик на mail.ru например и заполняешь его данные в код, с него будут письма идти" - круто))) :goodpost:


Положил в копилку, пригодится))) Спасибо)))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bufer
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>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</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
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
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
alexdrob
сообщение 22.10.2009, 15:49; Ответить: alexdrob
Сообщение #7


файл functions.php

я там ; пропустил, поправил уже
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bufer
bufer
сообщение 22.10.2009, 15:54; Ответить: bufer
Сообщение #8


(alexdrob @ 22.10.2009, 18:20) *
например так измените

[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
alexdrob
сообщение 22.10.2009, 16:01; Ответить: alexdrob
Сообщение #9


не досмотрел я файл config.php

уберите там

$headers .= 'From: FeedbackForm' . "\r\n";
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bufer
bufer
сообщение 22.10.2009, 16:12; Ответить: bufer
Сообщение #10


(alexdrob @ 22.10.2009, 19:01) *
не досмотрел я файл config.php

уберите там

$headers .= 'From: FeedbackForm' . "\r\n";


СЛУШАЙ, РЕСПЕКТ ТЕБЕ БОЛЬШОЙ! ПРАВДА ВСЕ ЗАРАБОТАЛО!!!! :goodpost::goodpost::goodpost:

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Форма регистрации вордпресс. Привязка ссылок
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


 



RSS Текстовая версия Сейчас: 28.3.2024, 13:21
Дизайн