host = $host;
$this->port = $port;
$this->isAuth = $isAuth;
$this->sock = fsockopen($host, $port, $errno, $errstr, 30);
if( $this->Get() <> 220 ) $error = "Falha ao tentar se conectar ao servidor";
$this->Put("EHLO $host");
if( $this->Get() <> 250 ) $error = "Falha ao tentar enviar o comando EHLO";
}
function Auth(){
$this->Put("AUTH LOGIN");
if( $this->Get() <> 250 ) $error = "Falha ao tentar enviar o comando AUTH PLAIN";
$this->Put(base64_encode($this->user));
if( $this->Get() <> 334 ) $error = "Falha ao tentar enviar o USUARIO";
$this->Put(base64_encode($this->pass));
if( $this->Get() <> 334 ) $error = "Falha ao tentar enviar a SENHA";
if( $this->Get() <> 235 ) $error = "Falha ao tentar autentificar";
}
function MakeHeader($to, $from, $subject){
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "Message-Id: <". date('YmdHis').".". md5(microtime()).".". strtoupper($from) ."> \r\n";
$header .= "From: <" . $from . "> \r\n";
$header .= "To: <".$to."> \r\n";
$header .= "Subject: ".$subject." \r\n";
$header .= "Date: ". date('D, d M Y H:i:s O') ." \r\n";
$header .= "X-MSMail-Priority: High \r\n";
return $header;
}
function Send($to, $from, $subject, $msg){
if( $this->isAuth == true )
$this->Auth();
$this->Put("MAIL FROM: " . $from);
if( $this->Get() <> 334 ) $error = "Falha ao tentar enviar o comando MAIL FROM";
$this->Put("RCPT TO: " . $to);
if( $this->Get() <> 334 ) $error = "Falha ao tentar enviar o comando RCPT TO";
$this->Put("DATA");
if( $this->Get() <> 334 ) $error = "Falha ao tentar enviar o comando DATA";
$this->Put($this->MakeHeader($to, $from, $subject));
if( $this->Get() <> 334 ) $error = "Falha ao tentar enviar as HEADERS";
$this->Put("\r\n");
if( $this->Get() <> 334 ) $error = "Falha ao tentar enviar o comando NEWLINE";
$this->Put($msg);
if( $this->Get() <> 334 ) $error = "Falha ao tentar enviar a MENSAGEM";
$this->Put(".");
if( $this->Get() <> 334 ) $error = "Falha ao tentar enviar a SENHA";
if( $this->Get() <> 250 ) return false; else return true;
$this->Close();
}
function Close(){
$this->Put("QUIT");
return fclose($this->sock);
}
function Put($value){
return fputs($this->sock, $value . "\r\n");
}
function Get(){
$line = fgets($this->sock). "
\n";
return $line{0}.$line{1}.$line{2};
}
}
define('SMTP_HOST','mail.host.com'); // host do servidor smtp
define('SMTP_PORT',25); // porta do servidor smtp
define('SMTP_USER','user@host.com'); // usuario para autentificação
define('SMTP_PASS','****'); // senha para autentificação
$sendVar["destino"] = "contato@host.com";
$sendVar["assunto"] = "Mensagem enviada via Smtp";
$sendVar["mensagem"] = "Blablabla
blublu";
$smtp = new SmtpMailer(SMTP_HOST,SMTP_PORT,true);
$smtp->user = SMTP_USER;
$smtp->pass = SMTP_PASS;
$smtp->Send($sendVar["destino"], SMTP_USER, $sendVar["assunto"], $sendVar["mensagem"]);
?>