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

3.66
3
21.09.2012 23:16:13
Да, переписана - она идет на взаимосвязь с файлом конфигурации в папке &quot;config_&quot; там то и прописываются основные параметры отправителя и 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 (&quot;www.yandex.ru&quot;, 80, $errno, $errstr, 30);
if ($fp === false) {
  print($errno.&quot; : &quot;.$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
Идеи и предложения
Обратная связь