Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
|
Всем привет, у меня такая проблемма: при рассылке почты сервер нивкакую не хочет отсылать письма. Застряет на команде RCPT TO:
Подскажите в чём может быть проблемма?
Отправку каждому новому адресату сначала делал в одном потоке, тоесть запускал в цикл команду RCPT TO: не пошло. Сейчас пробую каждый раз новый поток открывать - тоже не пошло.
Ниже покажу метод из класса который отправляет почту:
PHP:
скопировать код в буфер обмена
/** * Отправка письма через smtp сервер * * @param mixed $mail пожет принимать значение строки (если письмо отправляется только на 1 электронный адрес), * или может быть одномерным массивом, где каждое значение массива адрес электронной почты * @param string $tema тема письма * @param string $send текст письма * @param string $us_name обращение к тому кому отправляем почту * @return bool TRUE если всё удалось, FALSE если возникли ошибки */ public function email($mail, $tema, $send, $us_name='') { if($em == TRUE) { } else { $mail_to = $mail; } $header="Date: ".date("D, j M Y G:i:s")." +0700\r\n"; $header.="From: ".SMTP_USER." <".ADMAIL.">\r\n"; $header.="X-Mailer: The Bat! (v3.99.3) Professional\r\n"; $header.="X-Priority: 3 (Normal)\r\n"; $header.="Message-ID: <".mt_rand(111111111, 999999999).".".date("YmjHis")."@mail.ru>\r\n"; $header.="To: $us_name<$mail_to>\r\n"; $header.="MIME-Version: 1.0\r\n"; $header.="Content-Type: text/plain; charset=utf-8\r\n"; $smtp_conn = fsockopen(SMTP_HOST , SMTP_PORT , $errno, $errstr, 10 ); if(!$smtp_conn && $this->smtp_debug == TRUE) { $this->erno = 2; return FALSE; } $data = $this->get_data($smtp_conn); fputs($smtp_conn,"EHLO vasya\r\n"); if($this->smtp_debug == TRUE) { $code = mb_substr($this->get_data($smtp_conn),0,3,"utf-8"); if($code != 250) { $this->erno = 3; return FALSE; } } fputs($smtp_conn,"AUTH LOGIN\r\n"); if($this->smtp_debug == TRUE) { $code = mb_substr($this->get_data($smtp_conn),0,3,"utf-8"); if($code != 334 && $this->smtp_debug == TRUE) { $this->erno = 4; return FALSE; } } if($this->smtp_debug == TRUE) { $code = mb_substr($this->get_data($smtp_conn),0,3,"utf-8"); if($code != 334 && $this->smtp_debug == TRUE) { $this->erno = 5; return FALSE; } } if($this->smtp_debug == TRUE) { $code = mb_substr($this->get_data($smtp_conn),0,3,"utf-8"); if($code != 235 && $this->smtp_debug == TRUE) { $this->erno = 6; return FALSE; } } $size_msg=mb_strlen($header."\r\n".$send, "utf-8"); fputs($smtp_conn,"MAIL FROM:<".ADMAIL ."> SIZE=".$size_msg."\r\n"); if($this->smtp_debug == TRUE) { $code = mb_substr($this->get_data($smtp_conn),0,3,"utf-8"); if($code != 250 && $this->smtp_debug == TRUE) { $this->erno = 7; return FALSE; } } fputs($smtp_conn,"RCPT TO:<$mail_to>\r\n"); if($this->smtp_debug == TRUE) { $code = mb_substr($this->get_data($smtp_conn),0,3,"utf-8"); if($code != 250 && $code != 251) { $this->erno = 8; return FALSE; } } fputs($smtp_conn,"DATA\r\n"); if($this->smtp_debug == TRUE) { $code = mb_substr($this->get_data($smtp_conn),0,3,"utf-8"); if($code != 354 && $this->smtp_debug == TRUE) { $this->erno = 9; return FALSE; } } fputs($smtp_conn,$header."\r\n".$send."\r\n.\r\n"); if($this->smtp_debug == TRUE) { $code = mb_substr($this->get_data($smtp_conn),0,3,"utf-8"); if($code != 250 && $this->smtp_debug == TRUE) { $this->erno = 10; return FALSE; } } fputs($smtp_conn,"QUIT\r\n"); if($em == TRUE) { if(count($mail) == 0 ) return TRUE; else $this->email($mail, $tema, $send); } else return TRUE; }
(Отредактировано автором: 08 Октября, 2011 - 11:06:37)
|