ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Проблема с SMTP классом [php]
  #1  
Старый 19.06.2007, 22:48
Raz0r
Участник форума
Регистрация: 07.01.2007
Сообщений: 259
Провел на форуме:
309455

Репутация: 41
По умолчанию Проблема с SMTP классом [php]

Написал простенький класс для SMTP, не хочет робить, вернее робит, но только на Yandex.Ru.
PHP код:
<?php
class SMTP 
{

 
# SMTP Hostname
 
var $Host "localhost";
 
# SMTP Server port
 
var $Port 25;
 
# SMTP endline
 
var $CRLF "\r\n";
 
# User
 
var $Username "";
 
# Password
 
var $Password "";
 
# Connection var
 
var $Connection;
 
# Timeout
 
var $timeout 30;
 
# Curr code
 
var $code;
 
# Debug
 
var $debug 1;
 
# Charset 
 
var $Charset 'windows-1251';
 
# type
 
var $Type 'html';
 
 function 
Send($mail$subject$message) {
  global 
$Config,$Lang,$Member;
  
$this->Connection = @fsockopen($this->Host$this->Port$errno$errstr$this->timeout);
  if(empty(
$this->Connection)) {
   return 
false;
  }
  
$this->get_code();
  
// EHLO
  
fputs($this->Connection"EHLO gopneg" $this->CRLF);
  
$this->get_code();
  if(
$this->code != 250) {
   if(
$this->debug == 1) echo '[SMTP class] [Notice] [Server desn\'t accept <b>EHLO</b> message]';
   
fclose($this->Connection);
   return 
false
  }
  
// puts the login attempt
  
fputs($this->Connection"AUTH LOGIN" $this->CRLF);
  
$this->get_code();
  if(
$this->code != 334) {
   if(
$this->debug == 1) echo '[SMTP class] [Notice] [Server desn\'t accept <b>AUTH LOGIN</b> message]';
   
fclose($this->Connection);
   return 
false;
  }
  
// puts the username
  
fputs($this->Connectionbase64_encode($this->Username) . $this->CRLF);
  
$this->get_code();
  if(
$this->code != 334) {
   if(
$this->debug == 1) echo '[SMTP class] [Notice] [Wrong username specified]';
   
fclose($this->Connection);
   return 
false;
  }
  
// puts the password
  
fputs($this->Connectionbase64_encode($this->Password) . $this->CRLF);
  
$this->get_code();
  if(
$this->code != 235) {
   if(
$this->debug == 1) echo '[SMTP class] [Notice] [Wrong password specified]';
   
fclose($this->Connection);
   return 
false;
  }
  
fputs($this->Connection,"MAIL FROM:<" $вар_с_моим_email ">" $this->CRLF); // Smtp user
  
fputs($this->Connection,"RCPT TO:<" $mail["addr"] . ">" $this->CRLF); // Recipient
  
fputs($this->Connection,"DATA" $this->CRLF); // START Message
  
fputs($this->Connection,"From: \"Превед!\" <" $вар_с_моим_email  ">" $this->CRLF); // HEADER (sender)
  
fputs($this->Connection,"To: " $mail["to"] . " <" $mail["addr"] . ">" $this->CRLF); // HEADER (message recipient)
  
fputs($this->Connection,"Subject: "$subject."" $this->CRLF); // HEADER (message subject)
  
fputs($this->Connection,"Content-Type: text/" $this->Type "; charset=\"" $this->Charset "\"\r\n" $this->CRLF); // HEADER (content-type and charset)
  
fputs($this->Connection$message $this->CRLF); // Message BODY
  
fputs($this->Connection,"." $this->CRLF); // END message
  
$this->get_code();
  if(
$this->code != 250)
  {
   if(
$this->debug == 1) echo '[SMTP class] [Fatal error] [Unrecognised error on message send stage] [#'.htmlspecialchars($this->code).']';
   
fclose($this->Connection);
   return 
false;
  } else {
  
// exit
  
if(!empty($this->Connection)) fclose($this->Connection);
  
// return true
  
return true;
  }
 }
 function 
get_code() {
  
$reply $this->get_lines();
  
$code substr($reply,0,3);
  return 
$this->code intval($code);
 }
 function 
get_lines() {
  
$data "";
  while(
$str fgets($this->Connection,515)) {
   
$data .= $str;
   if(
substr($str,3,1) == " ") { break; }
  }
  return 
$data;
 }
}
?>
Входят данные такого типа:
PHP код:
$Mail = array(
 
"to" => "Дядя Вася"// Имя лола
 
"addr" => "vasyamail@mail.ru"// Мыло лола
);
$message $smtp->Send($Mail,"хай васёк, пошли пидь водку!","Тут литр застоялсо уже, пошли выпьем!");
if(
$message == 1) { echo "message sended!"; } else { echo "message is not sended"; } 
Где я туплю. Не предлагать юзать паблик скрипты, я хочу понять, в чем ошибка.

Последний раз редактировалось Raz0r; 19.06.2007 в 22:55..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с icq reider ICQ 6 16.08.2007 14:47
ICQ ошибки. Errors number Isis ICQ 0 23.04.2007 10:52
Забанили smtp. debil Болталка 1 21.05.2006 19:42
SMTP fingerprint с использованием ID тэгов k00p3r Чужие Статьи 0 08.06.2005 15:10
Проблема с перл Эксплойтом для ipb 2.0.* SURRENDER Форумы 2 07.12.2004 12:58



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ