Web
Web copied to clipboard
Отправка почты
Проверял как на стейбл так и на анстейбл версии. Почта работает только на восстановление пароля. Протест и подача бана не работает ни через системный почтовик ни через smtp скрипт.
При подаче или апелляции бана в логах почтовика пусто (при использовании системного) при сбросе пароля все ок.
Через час-два поправлю и залью фикс.
Просмотрел весь код сейчас. Всё в порядке. Логи у самой системы пустые?
Да, но только при протесте или подаче бана. При сбросе пароля есть и логи и соответственно письмо.
при сбросе паролья и При подаче апелляции бана письма не приходят
Возможно, почтовый сервер отклоняет запрос из-за заголовков. В процессе разбирательства.
@CrazyHackGut, там запрос кривой на получение эмейла того админа кто бан выдал когда аппеляцию на бан подают. Там покопай...
Он просто старается сразу всем отослать оповещение, что была создана "Апелляция на бан", и главным админам и тому админу кто выдал бан. Короче, продебажь там список который выходит при отправке. Возможно smtp не может из за ограничений отсылается почты в секунду сразу обработать все запросы, вот и блокирует.
Так там не обрабатывается даже первое письмо, насколько я понял.
Почта так и не отправляется в версия 1.1.5.1 (515) в release_114 почта работала без проблем хоть и надо было вносить в конфиг все. Как на время сделать обратно почту?
@IIIef качаем релиз 1.1.4, достаём оттуда smtp-func.php и перемещаем, куда надо, после чего в /includes/sb-callback.php после комментария о лицензии СБ дописываем:
require_once(INCLUDES_PATH . '/smtp-func.php');
И заменяем во всех файлах:
EMail(
на:
smtpmail(
Спасибо.
Сделал как вы написали и шибка на smtp-func.php on line 98
Что на строке 98 в smtp-func.php? Я пока что в экстрасенсы не нанимался, а копать старые релизы (качать) у меня нет желания: USB-модем и трафик.
-
`<?php
-
//Сколько писем можно отправлять с бесплатных (SMTP) почтовых ящиков?
-
//Цифры такие:
-
//mail.ru — не более 1 письма в минуту
-
//yandex.ru — не более 150 писем в сутки, не более 25 адресатов в одном письме
-
//gmail.com, tut.by — не более 500 писем в сутки (хотя в справке гугла фигурирует 2000), не более 500 получателей в одном письме за раз при отправке через интерфейс gmail.com (через web-интерфейс, т.е. при входе через браузер), не более 100 получателей в одном письме за раз при отправке через ваш почтовый клиент
-
//rambler.ru — не более 200 писем в час
-
//ukr.net — не более 250 писем в сутки
-
//meta.ua — не более 200 писем в сутки
-
//aol.com — не более 500 писем в сутки
-
//lycos.com — не более 250 писем в сутки
-
$config['smtp_username'] = '[email protected]'; //Смените на имя своего почтового ящика.
-
$config['smtp_port'] = '465'; // Порт работы. Не меняйте, если не уверены.
-
$config['smtp_host'] = 'ssl://smtp.yandex.ru'; //сервер для отправки почты
-
$config['smtp_password'] = 'primer_'; //Измените пароль
-
$config['smtp_debug'] = true; //Если Вы хотите видеть сообщения ошибок, укажите true вместо false
-
$config['smtp_charset'] = 'UTF-8'; //кодировка сообщений. (или UTF-8, итд) Windows-1251
-
$config['smtp_from'] = 'Your Name'; //Ваше имя - или имя Вашего сайта. Будет показывать при прочтении в поле "От кого"
-
function smtpmail($mail_to, $subject, $message, $headers='') {
-
global $config;
-
$SEND = "Date: ".date("D, d M Y H:i:s") . " UT\r\n";
-
$SEND .= 'Subject: =?'.$config['smtp_charset'].'?B?'.base64_encode($subject)."=?=\r\n";
-
if ($headers) $SEND .= $headers."\r\n\r\n";
-
else
-
{
-
$SEND .= "Reply-To: ".$config['smtp_username']."\r\n";
-
$SEND .= "MIME-Version: 1.0\r\n";
-
$SEND .= "Content-Type: text/plain; charset=\"".$config['smtp_charset']."\"\r\n";
-
$SEND .= "Content-Transfer-Encoding: 8bit\r\n";
-
$SEND .= "From: \"".$config['smtp_from']."\" <".$config['smtp_username'].">\r\n";
-
$SEND .= "To: $mail_to <$mail_to>\r\n";
-
$SEND .= "X-Priority: 3\r\n\r\n";
-
}
-
$SEND .= $message."\r\n";
-
if( !$socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 30) ) {
-
if ($config['smtp_debug']) echo $errno."<br>".$errstr;
-
return false;
-
}
-
if (!server_parse($socket, "220", __LINE__)) return false;
-
fputs($socket, "HELO " . $config['smtp_host'] . "\r\n");
-
if (!server_parse($socket, "250", __LINE__)) {
-
if ($config['smtp_debug']) echo '<p>Не могу отправить HELO!</p>';
-
fclose($socket);
-
return false;
-
}
-
fputs($socket, "AUTH LOGIN\r\n");
-
if (!server_parse($socket, "334", __LINE__)) {
-
if ($config['smtp_debug']) echo '<p>Не могу найти ответ на запрос авторизаци.</p>';
-
fclose($socket);
-
return false;
-
}
-
fputs($socket, base64_encode($config['smtp_username']) . "\r\n");
-
if (!server_parse($socket, "334", __LINE__)) {
-
if ($config['smtp_debug']) echo '<p>Логин авторизации не был принят сервером!</p>';
-
fclose($socket);
-
return false;
-
}
-
fputs($socket, base64_encode($config['smtp_password']) . "\r\n");
-
if (!server_parse($socket, "235", __LINE__)) {
-
if ($config['smtp_debug']) echo '<p>Пароль не был принят сервером как верный! Ошибка авторизации!</p>';
-
fclose($socket);
-
return false;
-
}
-
fputs($socket, "MAIL FROM: <".$config['smtp_username'].">\r\n");
-
if (!server_parse($socket, "250", __LINE__)) {
-
if ($config['smtp_debug']) echo '<p>Не могу отправить комманду MAIL FROM: </p>';
-
fclose($socket);
-
return false;
-
}
-
fputs($socket, "RCPT TO: <" . $mail_to . ">\r\n");
-
if (!server_parse($socket, "250", __LINE__)) {
-
if ($config['smtp_debug']) echo '<p>Не могу отправить комманду RCPT TO: </p>';
-
fclose($socket);
-
return false;
-
}
-
fputs($socket, "DATA\r\n");
-
if (!server_parse($socket, "354", __LINE__)) {
-
if ($config['smtp_debug']) echo '<p>Не могу отправить комманду DATA</p>';
-
fclose($socket);
-
return false;
-
}
-
fputs($socket, $SEND."\r\n.\r\n");
-
if (!server_parse($socket, "250", __LINE__)) {
-
if ($config['smtp_debug']) echo '<p>Не смог отправить тело письма. Письмо не было отправленно!</p>';
-
fclose($socket);
-
return false;
-
}
-
fputs($socket, "QUIT\r\n");
-
fclose($socket);
-
return TRUE;
-
}
-
function server_parse($socket, $response, $line = LINE) {
-
global $config;
-
while (substr($server_response, 3, 1) != ' ') {
-
if (!($server_response = fgets($socket, 256))) {
-
if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>";
-
return false;
-
}
-
}
-
if (!(substr($server_response, 0, 3) == $response)) {
-
if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>";
-
return false;
-
}
-
return true;
-
}
-
?>
`
Полную ошибку увидеть можно?
Удалите функцию smtpmail() из system-functions.php
УРААААА, работает!!! Спасибо))))
Парни, в итоге есть версия в которой все работает без плясок с бубнами? Т.е. скачал, установил, прописал данные от почтовика и все. Спасибо.
Нужна помощь по этому Issue. А конкретно интересует кто нибудь, кто может "взять в аренду" бесплатный веб хостинг на МайАрене под тестирования.