Ir para conteúdo
Fórum Script Brasil
  • 0

Classe


msb_gj

Pergunta

Boa Tarde pessoal do SB

Estou com um pepino feio aqui

Depois de muita luta consegui um uma classe para mandar e-mail autenticando no servidor ex.: script rodando na máquina x e o e-mail que vai ser enviado é autenticado na máquina y.

Estava muito feliz, até que reparei que só envia para alguns e não para todos ... Não consegui determinar um padrão para saber qual o erro, por esse motivo peço ajuda do pessoal

Segue o código:

<?

require ("smtp.inc.php");

$smtp=new SMTPMAIL;

$from="meu_email";

$to="$email3";

$cc="";

$subject="Ativação de Conta no Site ";

$body="$cod1";

if(!$smtp->send_smtp_mail($to,$subject,$body,$cc,$from))

echo "Erro no envio do e-mail!<BR>Error: ".$smtp->error;

else

echo "<table width=\"596\">

<tr>

<td><div align=\"center\"><font color=\"#0000FF\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>E-mail

Enviado com Sucesso!</strong></font></div></td>

</tr>

</table>";

}

?>

==============

smtp.inc.php

<?php

class SMTPMAIL

{

var $host="servidor externo";

var $port=25;

var $error;

var $state;

var $con=null;

var $greets="";

function SMTPMAIL()

{

$this->host=ini_get("SMTP");

$this->port=25;

$this->state="DISCONNECTED";

}

function set_host($host)

{

$this->host=$host;

}

function set_port($port=25)

{

$this->port=$port;

}

function error()

{

return $this->error;

}

function connect($host="",$port=25)

{

if(!empty($host))

$this->host($host);

$this->port=$port;

if($this->state!="DISCONNECTED")

{

$this->error="Error : connection already open.";

return false;

}

$this->con=@fsockopen($this->host,$this->port,$errno,$errstr);

if(!$this->con)

{

$this->error="Error($errno):$errstr";

return false;

}

$this->state="CONNECTED";

$this->greets=$this->get_line();

return true;

}

function send_smtp_mail($to,$subject,$data,$cc="",$from='HelpDesk')

{

$ret=$this->connect();

if(!$ret)

return $ret;

$this->put_line("MAIL FROM: $from");

$response=$this->get_line();

if(intval(strtok($response," "))!=250)

{

$this->error=strtok($response,"\r\n");

return false;

}

$to_err=preg_split("/[,;]/",$to);

foreach($to_err as $mailto)

{

$this->put_line("RCPT TO: $mailto");

$response=$this->get_line();

if(intval(strtok($response," "))!=250)

{

$this->error=strtok($response,"\r\n");

return false;

}

}

if(!empty($cc))

{

$to_err=preg_split("/[,;]/",$cc);

foreach($to_err as $mailto)

{

$this->put_line("RCPT TO: $mailto");

$response=$this->get_line();

if(intval(strtok($response," "))!=250)

{

$this->error=strtok($response,"\r\n");

return false;

}

}

}

$this->put_line("DATA");

$response=$this->get_line();

if(intval(strtok($response," "))!=354)

{

$this->error=strtok($response,"\r\n");

return false;

}

$this->put_line("TO: $to");

$this->put_line("SUBJECT: $subject");

$this->put_line($data);

$this->put_line(".");

$response=$this->get_line();

if(intval(strtok($response," "))!=250)

{

$this->error=strtok($response,"\r\n");

return false;

}

$this->close();

return true;

}

// This function is used to get response line from server

function get_line()

{

while(!feof($this->con))

{

$line.=fgets($this->con);

if(strlen($line)>=2 && substr($line,-2)=="\r\n")

return(substr($line,0,-2));

}

}

////This functiuon is to retrive the full response message from server

////This functiuon is to send the command to server

function put_line($msg="")

{

return @fputs($this->con,"$msg\r\n");

}

function close()

{

@fclose($this->con);

$this->con=null;

$this->state="DISCONNECTED";

}

}

?>

Agradeço desde já pela ajuda

Obrigado

MSB_GJ

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...