Jump to content

POWERED BY:

Archived

This topic is now archived and is closed to further replies.

nknk

Problema com envio de e-mails

Recommended Posts

Eu utilizo a função abaixo para enviar malas-direta e também para enviar e-mail quando efetua um compra, porém algumas vezes as pessoas dizem que não recebem o e-mail. Isto é um problema da função ou do servidor ?

 

<?php
class Smtp{

var $conn;
var $user;
var $pass;
var $debug = true;
var $x = "";

function Smtp($host){
 $this->conn = fsockopen($host, 25, $errno, $errstr, 30);
 $this->Put("EHLO $host");
}
function Auth(){
 $this->Put("AUTH LOGIN");
 $this->Put(base64_encode($this->user));
 $this->Put(base64_encode($this->pass));
}
function Send($to, $from, $subject, $msg){

 $this->Auth();
 $this->Put("MAIL FROM: " . $from);
 $this->Put("RCPT TO: " . $to);
 $this->Put("DATA");
 $this->Put($this->toHeader($to, $from, $subject));
 $this->Put("\r\n");
 $this->Put($msg);
 $this->Put(".");
 $this->Close();
 if(isset($this->conn)){
 return true;
 }else{
 return false;
 }
}
function Put($value){
 return fputs($this->conn, $value . "\r\n");
}
function toHeader($to, $from, $subject){
 $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";
 $header .= "Content-type: text/html; charset=iso-8859-1\r\n";
 return $header;
}
function Close(){
 $this->Put("QUIT");
 if($this->debug == true){
 while (!feof ($this->conn)) {
$x .= fgets($this->conn)."\n";
 }
mysql_query("INSERT INTO email (...) VALUES (...)");
 }
 return fclose($this->conn);
}
}
//Enviar e-mail
$subject = "assunto";
$smtp = new Smtp("mail.servidor.com");
$smtp->user = "usuario";
$smtp->pass = "senha";
$smtp->debug = true;
if($smtp->Send($to,"x@servidor.ocm",$subject,$body)){echo"foi";}else{echo"erro";}
?> 

Share this post


Link to post
Share on other sites

Se "algumas" pessoas não receberam, acho que a melhor coisa seria você conseguir achar o que as une, dai você acha o problema, por exemplo se todas as pessoas que não receberam tem conta hotmail, ou todos os emails enviados depois das 23 horas não chegam e por ai vai..

Share this post


Link to post
Share on other sites

Depende de quantos emails você dispara

alguns servidores possuem limitadores como por exemplo 100 emails por hora.

Verifique com essas pessoas se não estão chegando emails na caixa de spam.

 

att

Share this post


Link to post
Share on other sites

Eu ja fiz um teste enviando para mim, pois no sites eu crio uma conta para ver os problemas e algumas vezes nao funcionou. Quando isto ocorria eu criei um campo para inserir um campo na tabela com o debug. Vou tentar utilizar esta classe sugerida sugerida PHPmailer.

  }
mysql_query("INSERT INTO email (...) VALUES (...)");
 }

 

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.