nknk 3 Denunciar post Postado Julho 4, 2011 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
merlinus 1 Denunciar post Postado Julho 4, 2011 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
lambrusco 3 Denunciar post Postado Julho 4, 2011 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
tupinikin 1 Denunciar post Postado Julho 4, 2011 Eu custumo usar a classe Phpmailer e resolveu 99% dos meus problemas Compartilhar este post Link para o post Compartilhar em outros sites
nknk 3 Denunciar post Postado Julho 14, 2011 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