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
Pergunta
msb_gj
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.