Чтение RSS каналов

Форум

Открыть Ответить

Модуль Магазин - SHOP, ошибка отправления писем

0

0
1
20.09.2012 07:31:0023.09.2012 13:37:40
Здравствуйте,
При оформлении заказа, после того как нажимаешь кнопку отправить (заполнив все поля), система долго думает и выдает сообщение об ошибке, при этом заказ поступает в базу банных, но нет никаких писем ни админу, ни пользователю.

При оформлении заказа

Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.mail.ru:25 (Network is unreachable) in /home/aqq12851/public_html/e-detmoda.ru/function/security.php on line 620

Warning: fclose(): supplied argument is not a valid stream resource in /home/aqq12851/public_html/e-detmoda.ru/function/security.php on line 620

Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.mail.ru:25 (Connection timed out) in /home/aqq12851/public_html/e-detmoda.ru/function/security.php on line 620

Warning: fclose(): supplied argument is not a valid stream resource in /home/aqq12851/public_html/e-detmoda.ru/function/security.php on line 620


Самое интересное, что такого рода ошибка появилась сразу после того, как я поменял хостера, когда все работало - это был "1ГБ", а теперь пересел на "Мультихост", может в этом ошибка...

A вот, что показывает сама 620 строка, на которую ссылается ошибка:

function mail_send ($mail,$smail,$subject,$message,$id='',$pr='',$w=1) { global $db,$prefix,$user; include('config/config_mailer.php'); $mail = text_filter($mail); $subject = text_filter($subject); $message = (!intval($id))?$message:$message."<br><br>"._IP.": ".getip()."<br>"._BROWSER.": ".getagent()."<br>"._HASH.": ".md5(getagent()); $smtpconf['password']=htmlspecialchars_decode($smtpconf['password'],ENT_QUOTES); $smtpconf['name']=htmlspecialchars_decode($smtpconf['name'],ENT_QUOTES); $smtpconf['client']=htmlspecialchars_decode($smtpconf['client'],ENT_QUOTES); $status=1; $log=''; $header="Date: ".date("D, j M Y G:i:s")." +0700\r\n"; $header.="From: =?".$smtpconf['charset']."?Q?".str_replace("+","_",str_replace("%","=",urlencode($smtpconf['name'])))."?= <".$smtpconf['from'].">\r\n"; $header.="X-Mailer: ".$smtpconf['client']."\r\n"; $header.="Reply-To: =?".$smtpconf['charset']."?Q?".str_replace("+","_",str_replace("%","=",urlencode($smtpconf['name'])))."?= <".$smtpconf['from'].">\r\n"; $header.="X-Priority: ".((!$pr)?"3":intval($pr))." (Normal)\r\n"; $header.="Message-ID: <".mt_rand(156, 999999999).".".date("YmjHis")."@".$smtpconf['zone'].">\r\n"; $header.="To: =?".$smtpconf['charset']."?Q?".str_replace("+","_",str_replace("%","=",urlencode($mail)))."?= <$mail>\r\n"; $header.="Subject: =?".$smtpconf['charset']."?Q?".str_replace("+","_",str_replace("%","=",urlencode($subject)))."?=\r\n"; $header.="MIME-Version: 1.0\r\n"; $header.="Content-Transfer-Encoding: 8bit\r\n"; $header.="Content-Type: text/".$smtpconf['type']."; charset=".$smtpconf['charset']."\r\n"; if ($smtpconf['status']==2) { if(mail($mail,$subject,$message,$header)) $log ="<font color='green'>"._MAIL_SMTP_1."<b>$mail</b>"._MAIL_SMTP_2."</font><br />"; else {$log ="<font color='red'>"._MAIL_SMTP_3."<b>$mail</b>!</font><br />";$status=0;} } else { $smtp_conn = fsockopen($smtpconf['smtp'], $smtpconf['port'],$errno, $errstr, 10); if(!$smtp_conn) {$log .="<font color='red'>"._MAIL_SMTP_4."<b>".$smtpconf['smtp']."</b>!</font><br />"; fclose($smtp_conn); $status=0;} else $log .="<font color='green'>"._MAIL_SMTP_5."</font><br />"; if ($status==1) {$data = smtp_get_data($smtp_conn);fputs($smtp_conn,"EHLO ".$smtpconf['zone']."\r\n");$code = substr(smtp_get_data($smtp_conn),0,3); if($code != 250) {$log .="<font color='red'>"._MAIL_SMTP_6."</font><br />"; fclose($smtp_conn); $status=0;} else $log .="<font color='green'>"._MAIL_SMTP_7."</font><br />"; if ($status==1) {fputs($smtp_conn,"AUTH LOGIN\r\n");$code = substr(smtp_get_data($smtp_conn),0,3); if($code != 334) {$log .="<font color='red'>"._MAIL_SMTP_8."</font><br />"; fclose($smtp_conn); $status=0;} else $log .="<font color='green'>"._MAIL_SMTP_9."</font><br />"; } if ($status==1) {fputs($smtp_conn,base64_encode($smtpconf['login'])."\r\n");$code = substr(smtp_get_data($smtp_conn),0,3); if($code != 334) {$log .="<font color='red'>"._MAIL_SMTP_10."<b>".$smtpconf['login']."</b>...</font><br />"; fclose($smtp_conn); $status=0;} else $log .="<font color='green'>"._MAIL_SMTP_11."<b>".$smtpconf['login']."</b>"._MAIL_SMTP_12."</font><br />"; } if ($status==1) {fputs($smtp_conn,base64_encode($smtpconf['password'])."\r\n");$code = substr(smtp_get_data($smtp_conn),0,3); if($code != 235) {$log .="<font color='red'>"._MAIL_SMTP_13."</font><br />"; fclose($smtp_conn); $status=0;} else $log .="<font color='green'>"._MAIL_SMTP_14."</font><br />"; } if ($status==1) {fputs($smtp_conn,"MAIL FROM:".$smtpconf['from']."\r\n");$code = substr(smtp_get_data($smtp_conn),0,3); if($code != 250) {$log .="<font color='red'>"._MAIL_SMTP_15."</font><br />"; fclose($smtp_conn); $status=0;} else $log .="<font color='green'>"._MAIL_SMTP_16."</font><br />"; } if ($status==1) { fputs($smtp_conn,"RCPT TO:$mail\r\n");$code = substr(smtp_get_data($smtp_conn),0,3); if($code != 250 AND $code != 251) {$log .="<font color='red'>"._MAIL_SMTP_17."$mail!</font><br />"; fclose($smtp_conn); $status=0;} else $log .="<font color='green'>"._MAIL_SMTP_18."$mail!</font><br />"; } if ($status==1) {fputs($smtp_conn,"DATA\r\n");$code = substr(smtp_get_data($smtp_conn),0,3); if($code != 354) {$log .="<font color='red'>"._MAIL_SMTP_19."</font><br />"; fclose($smtp_conn); $status=0;} else $log .="<font color='green'>"._MAIL_SMTP_20."</font><br />"; } if ($status==1) {fputs($smtp_conn,$header."\r\n".$message."\r\n.\r\n");$code = substr(smtp_get_data($smtp_conn),0,3); if($code != 250) {$log .="<font color='red'>"._MAIL_SMTP_21."$code</font><br />"; fclose($smtp_conn); $status=0;} else $log .="<font color='green'>"._MAIL_SMTP_22."</font><br />"; } if ($status==1) {fputs($smtp_conn,"QUIT\r\n");fclose($smtp_conn);} }} if ($smtpconf['log']==1 || $w!=1) { $info=serialize(array('log'=>preg_replace('#(\'|\")#si','&quot;',$log),'sender'=>preg_replace('#(\'|\")#si','&quot;',_IP.": ".getip()."<br />"._BROWSER.": ".getagent()."<br />"._HASH.": ".md5(getagent())."<br />Referer: ".$_SERVER['HTTP_REFERER']."<br />URL: ".getenv("REQUEST_URI")))); /*$db->sql_query("INSERT INTO `".$prefix."_mail_log` VALUES (NULL,'$mail','".((is_user())?$user[0]:0)."',now(),'$info',$status,".$smtpconf['status'].")");*/ print_r(unserialize($info));  } return true; }


Версия системы: SLAED CMS 4.* Pro
Версия PHP: PHP 5
Сервер: Сервер в интернете
4.27

4.27
2
21.09.2012 21:06:32
ну вообщето сама стандартная функция намного меньше, у тебя переписана?

# Mail send
function mail_send($email, $smail, $subject, $message, $id="", $pr="") {
	global $conf;
	$email = text_filter($email);
	$smail = text_filter($smail);
	$subject = text_filter($subject);
	$id = intval($id);
	$pr = (!$pr) ? "3" : "".intval($pr)."";
	$message = (!$id) ? "".$message."" : "".$message."<br><br>"._IP.": ".getip()."<br>"._BROWSER.": ".getagent()."<br>"._HASH.": ".md5(getagent())."";
	$mheader = "MIME-Version: 1.0\n"
	."Content-Type: text/html; charset="._CHARSET."\n"
	."Content-Transfer-Encoding: 8bit\n"
	."Reply-To: \"$smail\" <$smail>\n"
	."From: \"$smail\" <$smail>\n"
	."Return-Path: <$smail>\n"
	."X-Priority: $pr\n"
	."X-Mailer: SLAED CMS ".$conf['version']." Mailer\n";
	mail($email, $subject, $message, $mheader);
}
3.66

3.66
3
21.09.2012 23:16:13
Да, переписана - она идет на взаимосвязь с файлом конфигурации в папке "config_" там то и прописываются основные параметры отправителя и SMTP протоколы.

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


Версия системы: SLAED CMS 4.* Pro
Версия PHP: PHP 5
Сервер: Сервер в интернете
4.27

4.27
4
22.09.2012 07:55:26
Хостинг не поддерживает функцию fsockopen. Не разрешает брать файлы с другого источника, надо включать в php

сделай тестовый файл к примеру test.php у себя в корне сервера

<?php
$fp = fsockopen ("www.yandex.ru", 80, $errno, $errstr, 30);
if ($fp === false) {
  print($errno." : ".$errstr);
}

?>


покажет работает fsockopen или нет
3.66

3.66
5
22.09.2012 15:26:5822.09.2012 15:29:11
Сделал, как просил, но пока не знаю, что с этим делать:

http://www.дет-мода.рф/test.php


Версия системы: SLAED CMS 4.* Pro
Версия PHP: PHP 5
Сервер: Сервер в интернете
4.27

4.27
6
22.09.2012 16:16:26
если не чего не показывает. то означает что fsockopen у тебя работает нормально.


$smtpconf['smtp'], 
$smtpconf['port']


у тебя там как прописан адрес и порт?
smtp.mail.ru
25

Скорее всего на вашем сервере запрещен внешний доступ к другим сайтам, либо запрещен выход по 25 порту, чтобы не спамили

попробуй порт поменять с которым работает mail.ru
SMTP — 25, 587 или 2525 (без шифрования) и 465 (с шифрованием).

если не сработает то пиши хостеру
3.66

3.66
7
22.09.2012 16:43:24
Да, перепробовал все варианты портов, но к сожалению ничего не проходит, пишу хостеру, спасибо!


Версия системы: SLAED CMS 4.* Pro
Версия PHP: PHP 5
Сервер: Сервер в интернете
4.27

4.27
8
22.09.2012 19:12:10
Ответ службы поддержки:

На виртуальном хостинге сторонние подключения по SMTP запрещены. Для отправки писем следует использовать локальный почтовый сервер.

Благодарим Вас за обращение в нашу компанию.

С уважением, Игорь Краснов
Специалист службы технической поддержки MultiHOST


В общем, считаю тему закрытой!
Внимательней выбирайте хостера, чтобы не пришлось исправлять ошибки!


Версия системы: SLAED CMS 4.* Pro
Версия PHP: PHP 5
Сервер: Сервер в интернете
4.27

4.27
Открыть Ответить
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь