Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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";}
?> 

Compartilhar este post


Link para o post
Compartilhar em outros 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..

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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 (...)");
 }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.