Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mail 
:(
    Опции темы
Frozen_Coyote
Дата 14.2.2008, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Приветствую, 

просьба объяснить мне, почему НЕТ, и как бы сделать, чтобы было ДА! :)

итак:

есть некий код

Код


$mail_list = "[email protected];[email protected];[email protected]";
$e_mail_massive = explode(";", $mail_list);

                       for($i=0; $i<sizeof($e_mail_massive); $i++)
           {
        $to = $e_mail_massive[$i]; // Адрес получателя
$subj = "subject";
$body = "body";
$from = "from";
        
                                   mailer($to, $subj, $body, $from); // Отправляем в функцию для отправки
           }



            function mailer($to, $subj, $body, $from)
            {
                $to = convert_cyr_string($to, "w", "k");
                $subj = convert_cyr_string($subj, "w", "k");
                $body = convert_cyr_string($body, "w", "k");
                $from = "From: ".$from."\nContent-Type: text/plain; charset=\"koi8-r\"\nContent-Transfer-Encoding: 8bit";
                $from = convert_cyr_string($from, "w", "k");

                if(mail($to, $subj, $body, $from))
                {
                echo "Письмо на $to успешно отправлено<br>";
                }
                else
                {
                echo "К сожалению, письмо на $to не отправлено<br>";
                }

            }




скажите, почему письмо уходит ТОЛЬКО по первому адресу, а по остальным "К сожалению..."? При этом иногда уходит на два, а один раз - на все три, но когда сразу повторно запустил - опять на первый, все остальные "К сожалению..."? Хостер говорит "Ошибка в скрипте.." я не пойму в чем ошибка ((
PM MAIL   Вверх
Emm
Дата 14.2.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 14.7.2007

Репутация: нет
Всего: 1



Цитата

Приветствую, 

аналогично!

млин... слишком кривой скрипт... даже лень смотреть...
посмотрика на этот скрипт _http://lixme.ru/transition/link.php?ad=lixmesendermail
расскажешь впечатления!
PM MAIL WWW ICQ   Вверх
Frozen_Coyote
Дата 14.2.2008, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



ммм... лень смотреть, уж извини

мне надо понять в чем кривизна, а не то, что и где хорошего в сети есть
PM MAIL   Вверх
GeneralElectric
Дата 14.2.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



Frozen_Coyote, я думаю, Emm тебя извинит. У него-то проблем с отправкой почты нет smile 
PM MAIL   Вверх
Frozen_Coyote
Дата 14.2.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Прикольно, когда люди дуплетом отвечают по существу... smile Чувствуешь моральную удовлетворенность...
PM MAIL   Вверх
Хрипа
Дата 14.2.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 11.12.2006

Репутация: -6
Всего: нет



У вас настроен SMTP сервер ?
Увас есть SEND mail ?
увас настроенно php.ini ?

Добавлено через 54 секунды
Денвер не включает в себя SEND mail так как он Юниксный и под виндой не работает.
В последней версии денвера есть Емулятор!
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
flashaa
Дата 14.2.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Я думаю скрипт работает правильно и хостер вас обманул. Этот же факт доказывает то, что один и тот же скрипт со статичными данными работает по-разному. Скорее всего проблемы на почтовом сервере провайдера.
Что мне не понравилось в коде:
3ий параметр ф-ции mail это не From а вообще любые заголовки. Название параметра вводит в заблуждение. К тому же почему from=from, лучше бы сделать какой-то осмысленный емейл. Важно это или нет, я не знаю. Просто рекомендация.
Ф-ция mail возвращает true при отправке на каждый емейл?

Добавлено @ 16:20
Цитата(Хрипа @  14.2.2008,  16:16 Найти цитируемый пост)
У вас настроен SMTP сервер ?
Увас есть SEND mail ?
увас настроенно php.ini ?


Цитата(Frozen_Coyote @  14.2.2008,  15:48 Найти цитируемый пост)
Хостер говорит "Ошибка в скрипте.." я не пойму в чем ошибка (( 



Это сообщение отредактировал(а) flashaa - 14.2.2008, 16:20
PM MAIL   Вверх
Frozen_Coyote
Дата 14.2.2008, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Хрипа,  если можно про конкретные необходимые настройки - поподробнее

пхп инфо говорит,  параметры сендмэйла следующие

sendmail_from no value no value 
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i 
Path to sendmail  /usr/sbin/sendmail -t -i  

а насчет СМТП

SMTP localhost localhost 
smtp_port 25 25 

что еще или, точнее, что не так в настройках, что должно быть и чего нет, подскажите пожалуйста

спасибо



PM MAIL   Вверх
Хрипа
Дата 14.2.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 11.12.2006

Репутация: -6
Всего: нет



Frozen_Coyote, Проблема ХЗ в чём, почему бы вам не отправить не из SEND mail письмо а по
SMTP ? может send mail накрылся )

Это сообщение отредактировал(а) Хрипа - 14.2.2008, 16:23
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
flashaa
Дата 14.2.2008, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Товарисчи, ни нада ковырять никакие настройки если дело идет на хостинге, там уже все расковыряли до вас. Надо обратиться в службу тех-поддержки и узнать, как правильно запускать ф-цию mail. А ещё лучше первоначально поискать ее в факе хостинге.
PM MAIL   Вверх
Хрипа
Дата 14.2.2008, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 11.12.2006

Репутация: -6
Всего: нет



Очень удобная либа и 100% отправка почты! советую
Код

<?php
$config['smtp_username'] = '';  //Смените на имя своего почтового ящика.
$config['smtp_port']     = '25'; // Порт работы. Не меняйте, если не уверены.
$config['smtp_host']     = 'smtp.mail.ru';  //сервер для отправки почты(для наших клиентов менять не требуется)
$config['smtp_password'] = '';  //Измените пароль
$config['smtp_debug']    = false;  //Если Вы хотите видеть сообщения ошибок, укажите true вместо false
$config['smtp_charset']  = 'Windows-1251';   //кодировка сообщений. (или UTF-8, итд)
$config['smtp_from']     = 'rujoin.com'; //Ваше имя - или имя Вашего сайта. Будет показывать при прочтении в поле "От кого"
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."&lt;br&gt;".$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;
}
    
 ?>

--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
Frozen_Coyote
Дата 14.2.2008, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



flashaa, да, я согласен данный вид кода - упрощенный и внешне кривоватый, я просто убрал всякие конверторы в кириллицу заголовоков и тд, чтобы не утруждать удобочитабельность

насчети true - вот именно что нет! два последующих - фэлс. я вот сейчас посидел подождал - опять запустил скрипт - опа! на все ушло. посидел еще минутки две - опять запускаю - оп, токолько на первый, остальные - нет. просто если необходимо отписаться хостеру - просьба подсказать, какие настройки ему необходимо включить, чтобы уж быть уверенным, что кривизна исключительно этого скрипта, а не хостера
PM MAIL   Вверх
Хрипа
Дата 14.2.2008, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 11.12.2006

Репутация: -6
Всего: нет



flashaa, скока работаю с PHP у меня всегда на куче хостингов не работает функция mail
поэтому я лучше ручками отправлю нежеле буду мучатся что и советую другим не мучатся и не изобретать велосипед который изобрели уже до нас ))
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
flashaa
Дата 14.2.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Цитата(Frozen_Coyote @  14.2.2008,  16:26 Найти цитируемый пост)
насчети true - вот именно что нет! два последующих - фэлс

Вот это ключ к разгадке. False возвращается когда письмо не принято на обработку почтовым сервером. Т.е. почтовый сервер отказал вам в отправке письма.
Тут могут быть 2 варианта: 
1) второе письмо генерируется некорректным, можно это проверить - следует вывести $body, $from
2) почтовый сервер провайдера не дает слишком часто отсылать письма (возможно,защита от спама)

В любом случае, наиболее простое и быстрое решение будет обратиться в  саппорт с вопросом "как я могу отправить письмо в скрипте PHP?" 


Это сообщение отредактировал(а) flashaa - 14.2.2008, 16:32
PM MAIL   Вверх
Хрипа
Дата 14.2.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 11.12.2006

Репутация: -6
Всего: нет



flashaa
Frozen_Coyote
УЖОС да на что вам сдалась функция mail ? можно на прямую через SMTP послать хоть 10 000 писем smile
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
Frozen_Coyote
Дата 14.2.2008, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Хрипа, огромное спасибо, сейчас погружусь в изучение-сравнение! )))
PM MAIL   Вверх
Хрипа
Дата 14.2.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 11.12.2006

Репутация: -6
Всего: нет



Frozen_Coyote, пример использывания: 
Код

$sender = smtpmail($mail_to, $subject, $message, $headers='');
if ($sender) print "Письмо ушло<br>"; else print "Не ушло<br>";
Настройка:
$config['smtp_username'] = 'xaker';  //Если ящик на mail.ru например [email protected] Смените на имя своего почтового ящика.
$config['smtp_port']     = '25'; // Порт работы. Не меняйте, если не уверены.
$config['smtp_host']     = 'smtp.mail.ru';  //сервер в данном случаи MAIL.ru для отправки почты(для наших клиентов менять не требуется)
$config['smtp_password'] = 'superHACKER';  //Пароль от ящика на mail.ru Измените пароль
$config['smtp_debug']    = false;  //Если Вы хотите видеть сообщения ошибок, укажите true вместо false
$config['smtp_charset']  = 'Windows-1251';   //кодировка сообщений. (или UTF-8, итд)
$config['smtp_from']     = 'rujoin.com'; //Ваше имя - или имя Вашего сайта. Будет показывать при прочтении в поле "От кого"


Это сообщение отредактировал(а) Хрипа - 14.2.2008, 16:39
--------------------
<Вырезана, как не соответствующая правилам форума >
PM MAIL   Вверх
Input
Дата 19.4.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 13.3.2008

Репутация: нет
Всего: нет



упс, не внимателен...

Это сообщение отредактировал(а) Input - 19.4.2008, 20:28
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0900 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.