ScornInPC 1 Denunciar post Postado Julho 29, 2006 Classe para envio de email que aceita SMTP autenticado, não necessita de servidor SMTP local, funciona em qualquer plataforma, sem limites de anexo. para enviar email HTML colocasse como um arquivo anexado smtpmail.class.php <?php /** * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the University of California, Berkeley nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * * Classe de manipulação do protocolo SMTP * @author Bruno Pitteli Gonçalves <scorninpc<at>gmail<dot>com> * @version 0.2 * @license BSD license * * 0.1 * Classe inicial * * 0.2 * Possibilidade de envio de email HTML * * 0.3 * Suporte a varios TOs separados por; * * 0.4 * Suporte à mudança da codificação * */ // Seta o tempo limite para 60 segundos set_time_limit(120); /** * SMTPMAIL * Escrito por Bruno Pitteli Gonçalves <scorninpc()gmail*com> * Classe que trata o protocolo SMTP */ class SMTPMAIL { /** * Variavel que armazena o endereço do servidor de email * @access public */ public $Servidor; /** * Variavel que armazena a porta do servidor de email * @access public */ public $Porta = 25; /** * Variavel que armazena a codificação * @access public */ public $Codificacao = 'ISO-8859-1'; /** * Variavel que armazena se o servidor é autenticado * @access public */ public $Autenticado; /** * Variavel que armazena o usuario do servidor de email, caso autenticado * @access public */ public $Usuario; /** * Variavel que armazena a senha do usuario do servidor de email, caso autenticado * @access public */ public $Senha; /** * Variavel que armazena o email de quem está enviando * @access public */ public $EmailDe; /** * Variavel que armazena o nome+email de quem está enviando, para aparecer no email * @access public */ public $EmailDeVisual; /** * Variavel que armazena o email para quem vai * @access public */ public $EmailPara; /** * Variavel que armazena o nome+email de quem está enviando, para aparecer no email * @access public */ public $EmailParaVisual; /** * Variavel que armazena o assunto do email * @access public */ public $Assunto; /** * Variavel que armazena a senha corpo do email * @access public */ public $Corpo; /** * Vetor que armazena os arquivos para anexo * @access private */ private $Anexos = array(); /** * Variavel que armazena a situação do envio do email * @access private */ private $erros = FALSE; /** * Construtor da classe * @name __construct * @access public */ public function __construct() { } // __construct /** * Método que anexa um arquivo ao vetor * @name anexarArquivo * @param string $path - Caminho do arquivo * @access public */ public function anexarArquivo($path) { $this->Anexos[] = $path; } // anexarArquivo /** * Método que verifica se a classe esta pronta está pronta para o envio de email * @name verificarIntegridade * @access private * @return boolean */ private function verificarIntegridade() { // Verifica as pendencias se o servidor for autenticado if($this->Autenticado === TRUE) { if((empty($this->Usuario)) || (empty($this->Senha))) { $this->erros = TRUE; return FALSE; } } // Verifica se o servidor foi digitado if(empty($this->Servidor)) { $this->erros = TRUE; return FALSE; } // Verifica se os outros parametros são validos if((empty($this->EmailDe)) || (empty($this->EmailPara)) || (empty($this->Assunto)) || (empty($this->Corpo))) { $this->erros = TRUE; return FALSE; } return TRUE; } // verificarIntegridade /** * Método que espera a resposta do servidor * @name esperarResposta * @access private * @param integer $socket - Ponteiro para o socket * @param integer $response - Codigo de resposta OK * @return boolean */ private function esperarResposta($socket, $response) { while (substr($server_response, 3, 1) != ' ') { if (!($server_response = fgets($socket, 256))) { $this->erros = TRUE; return FALSE; } if (!(substr($server_response, 0, 3) == $response)) { $this->erros = TRUE; return FALSE; }// echo '<font color="red">S</font> <- ' . $server_response . '<br />'; } return TRUE; } // esperarResposta /** * Método que envia uma string ao servidor * @name enviaPacote * @access private * @param integer $socket - Ponteiro para o socket * @param integer $data - String contendo as informações à serem enviadas * @return boolean */ private function enviaPacote($socket, $data) { if(!fputs($socket, $data . "\r\n")) { return FALSE; }// echo "<font color=\"blue\">C</font> -> " . $data . "<br />"; return TRUE; } // enviaResposta /** * Método que envia o email * @name Enviar * @access prublic * @return boolean */ function Enviar() { $boundary = md5(date('r', time())); // Verifica se esta pronto para iniciar o envio if(!$this->verificarIntegridade()) { return FALSE; } // Tenta conectar if(!$socket = fsockopen($this->Servidor, $this->Porta, $errno, $errstr, 30)) { $this->erros = TRUE; return FALSE; } // Espera por resposta $this->esperarResposta($socket, "220"); // Se o servidor é autenticado if($this->Autenticado) { $this->enviaPacote($socket, "EHLO " . $this->Servidor); $this->esperarResposta($socket, "250"); $this->enviaPacote($socket, "AUTH LOGIN"); $this->esperarResposta($socket, "334"); $this->enviaPacote($socket, base64_encode($this->Usuario)); $this->esperarResposta($socket, "334"); $this->enviaPacote($socket, base64_encode($this->Senha)); $this->esperarResposta($socket, "235"); } else { $this->enviaPacote($socket, "HELO " . $this->Servidor); $this->esperarResposta($socket, "250"); } // Envia quem está mandando o email $this->enviaPacote($socket, "MAIL FROM: " . $this->EmailDe); $this->esperarResposta($socket, "250"); // Envia quem esta recebendo o email $Emails = explode(';', $this->EmailPara); for($i=0;$i<count($Emails);$i++) { $this->enviaPacote($socket, "RCPT TO: " . $Emails[$i]); $this->esperarResposta($socket, "250"); } // Diz ao servidor que estou pronto para enviar a mensagem $this->enviaPacote($socket, "DATA"); $this->esperarResposta($socket, "354"); // Cabeçalho do email if(strlen($this->EmailDeVisual) == 0) { $this->enviaPacote($socket, "From: " . $this->EmailDe); } else { $this->enviaPacote($socket, "From: " . $this->EmailDeVisual . " <" . $this->EmailDe . ">"); } $To = 'To: '; $Emails = explode(';', $this->EmailPara); for($i=0; $i<count($Emails); $i++) { if(empty($Emails[$i])) { continue; } $To .= $Emails[$i] . ', '; } $To = substr($To, 0, strrpos($To, ',')); $this->enviaPacote($socket, $To); // Mando o assunto do email $this->enviaPacote($socket, "Subject: " . $this->Assunto); // Envia o cabeçalho $this->enviaPacote($socket, "Date: " . date("d M y H:i:s")); $this->enviaPacote($socket, "MIME-Version: 1.0"); $this->enviaPacote($socket, "Content-Type: multipart/mixed; boundary=" . $boundary); $this->enviaPacote($socket, "--" . $boundary); $this->enviaPacote($socket, "Content-Type: text/html; charset=" . $this->Codificacao . "\r\n"); $this->enviaPacote($socket, $this->Corpo); $this->enviaPacote($socket, "\r\n"); // Verifica se existe arquivo para ser enviado junto if(count($this->Anexos) > 0) { for($i=0; $i<count($this->Anexos); $i++) { $info = pathinfo($this->Anexos[$i]); // Pega o tipo para o MIME TYPE strtolower($info['extension']); switch($tipo) { case "jpeg": case "jpg": $Tipo = "image/jpeg"; break; case "gif": $Tipo = "image/gif"; break; case "doc": $Tipo = "application/msword"; break; case "rar": $Tipo = "application/rar"; break; case "zip": $Tipo = "application/zip"; break; case "pdf": $Tipo = "application/pdf"; break; default: $Tipo = "application/octet-stream"; break; } // Envia os cabeçalhos do anexo $this->enviaPacote($socket, "--" . $boundary); $this->enviaPacote($socket, "Content-Type: " . $Tipo . "; name=\"". $info['filename'] . "\""); $this->enviaPacote($socket, "Content-Transfer-Encoding: base64"); $this->enviaPacote($socket, "Content-Disposition: attachment; filename=\"" . $info['filename'] . "\""); $this->enviaPacote($socket, "\r\n"); // Envia o arquivo codificado $this->enviaPacote($socket, base64_encode(file_get_contents($this->Anexos[$i]))); $this->enviaPacote($socket, "\r\n"); } $this->enviaPacote($socket, "--" . $boundary . "--"); } // Avisa o o termino do envio $this->enviaPacote($socket, "\r\n\r\n."); $this->esperarResposta($socket, "250"); // Sai do servidor e fecha o socket $this->enviaPacote($socket, "QUIT"); fclose($socket); // Retorna FALSE se o email não foi enviado if($this->erros == TRUE) { return FALSE; // Ou TRUE se não houve erro } else { return TRUE; } } // Enviar }?> explicações $Email = new SMTPMAIL; - Cria novo objeto Atributos $Email->Servidor - Servidor SMTP (não aceita SSL como gmail AINDA) $Email->Autenticado - True se for autenticado, false se não for autenticado $Email->Codificacao - Seta a codificação (UTF-8, ISO-8859-1, ...) $Email->Usuario - Usuario do servidor SMTP $Email->Senha - Senha do servidor SMTP $Email->EmailDe - Email de quem está enviando o email $Email->EmailPara - Email de quem irá receber o email $Email->Assunto - Assunto do email $Email->Corpo - Mensagem do email Métodos $Email->Anexar() - Anexa um arquivo, pode ser usado varias vezes, retorna true se enviar ou false se tiver erro $Email->Enviar() - Envia o email, retorna true se enviar ou false se tiver erro exemplo.php <?php require_once('smtpmail.class.php'); $smtp = new SMTPMAIL(); $smtp->Servidor ='smtp.mail.yahoo.com.br'; $smtp->Autenticado = TRUE; $smtp->Usuario = "meu_usuario"; $smtp->Senha = "minha_senha"; $smtp->Codificacao = "UTF-8"; $smtp->EmailDe = 'bruno0@gmail.com'; $smtp->EmailDeVisual = 'Bruno Pitteli Gonçalves <bruno.goncalves@added.com.br>'; $smtp->EmailPara = 'bruno1@gmail.com;bruno2@gmail.com'; $smtp->Assunto = 'Email Teste'; $smtp->Corpo = '<b>MEU CORPO HTML</b>'; $smtp->anexarArquivo('D:\\Bruno\\Fotos&Videos\\Carros\\03-07-07_0916.jpg'); $smtp->anexarArquivo('D:\\Bruno\\Fotos&Videos\\Carros\\Carro_11.jpg'); if($smtp->Enviar()) { echo 'ok'; } else { echo 'errado'; }?> Sómente lembrando, PHP roda do em server side, logo os arquivos para o anexo devem estar no servidor do script. Se você precisa enviar um email de outro lugar, implemente um script de upload e depois envie o email espero que gostem Compartilhar este post Link para o post Compartilhar em outros sites
Diego Polla 0 Denunciar post Postado Outubro 11, 2006 Olá ScornInPC,Tentei utilizar sua classe, mas obtive o seguinte erro: Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /usr/local/apache/htdocs/mail/smtp.class.php on line 143Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.mail.yahoo.com.br:25 (Unknown error) in /usr/local/apache/htdocs/mail/smtp.class.php on line 143Warning: fgets(): supplied argument is not a valid stream resource in /usr/local/apache/htdocs/mail/smtp.class.php on line 131Você poderia me ajudar dissendo o que tenho de errado no meu servidor?Grato. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/> Compartilhar este post Link para o post Compartilhar em outros sites
*_Charles Potter_* 1 Denunciar post Postado Julho 5, 2007 Caro Diego Polla,este erro significa que seu servidor PHP não suporta conexão Smtp Compartilhar este post Link para o post Compartilhar em outros sites
ruysneto 0 Denunciar post Postado Julho 23, 2007 ScornInPCNão consegui enviar email , recebo a mensagem do script "Email não pode ser enviado". Acho q não tem nada de esrrado nas configurações. Estou usando smpt da bol, e quando uso o outlook com as mesmas configurções funciona legal. Saberia me dizer o que podeia ser? Compartilhar este post Link para o post Compartilhar em outros sites
crqc 0 Denunciar post Postado Fevereiro 21, 2008 eu configurei lá, e no meu deu o seguinte erro: CODE erros=TRUE; return FALSE; } $File=fread($fp, filesize($arq)); fclose($fp); return base64_encode($File); } //Retorna o nome do arquivo function PegarNome($str) { $Nome=""; $i=strlen($str)-1; while($str[$i]!=$this->Barra) $i--; $i++; $j=0; for($i; $iAnexos[$this->NumAnexos]=$arq; $this->NumAnexos++; return TRUE; } //Função que verifica se as variaveis estão OK function Verificar() { //Verifica se é um servidor autenticado if( $this->Autenticado ) if( !isset($this->Usuario) || !isset($this->Senha) ) //Se for autenticado, verifica o usuario e a senha $this->erros=TRUE; //Verifica se o servidor foi digitado if( !isset($this->Servidor) ) $this->erros=TRUE; //Verifica se os parametros são validos if( !isset($this->EmailDe) || !isset($this->EmailPara) || !isset($this->Assunto) || !isset($this->Corpo) ) $this->erros=TRUE; } //Função que espera o servidor responder function Esperar_Resp($socket, $response, $line = __LINE__) { while (substr($server_response, 3, 1) != ' ') if (!($server_response = fgets($socket, 256))) $this->erros=TRUE; if (!(substr($server_response, 0, 3) == $response)) $this->erros=TRUE; } function Enviar() { $this->Verificar(); if( !$this->erros ) { //Tenta conectar if( !$socket=fsockopen($this->Servidor, $this->Porta, $errno, $errstr, 20) ) $this->erros=TRUE; //Espera por resposta $this->Esperar_Resp($socket, "220", __LINE__); //Verifica se o email esta sendo autenticado //Caso for ele ira mandar um EHLO, pra dizer que vai ser autenticado //Caso não for ele manda um HELO simples. if( $this->Autenticado ) { fputs($socket, "EHLO " . $this->Servidor . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); fputs($socket, "AUTH LOGIN\r\n"); $this->Esperar_Resp($socket, "334", __LINE__); fputs($socket, base64_encode($this->Usuario) . "\r\n"); $this->Esperar_Resp($socket, "334", __LINE__); fputs($socket, base64_encode($this->Senha) . "\r\n"); $this->Esperar_Resp($socket, "235", __LINE__); } else { fputs($socket, "HELO " . $this->Servidor . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); } //Envia quem está mandando o email fputs($socket, "MAIL FROM: " . $this->EmailDe . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); //Diz ao servidor quem vai receber o email fputs($socket, "RCPT TO: " . $this->EmailPara . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); //Diz ao servidor que estou pronto para enviar a mensagem fputs($socket, "DATA\r\n"); $this->Esperar_Resp($socket, "354", __LINE__); //Cabeçalho do email fputs($socket, "From: " . $this->EmailDe . "\r\n"); fputs($socket, "To: " . $this->EmailPara . "\r\n"); //Mando o assunto do email fputs($socket, "Subject: " . $this->Assunto . "\r\n"); //Envia o cabeçalho fputs($socket, "MIME-Version: 1.0\r\n"); fputs($socket, "Content-Type: multipart/mixed;\r\n"); fputs($socket, " boundary=KkK170891tpbkKk__FV_KKKkkkjjwq\r\n"); fputs($socket, "\r\n"); fputs($socket, "\r\n"); fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq\r\n"); fputs($socket, "Content-Type: text/plain; charset=US-ASCII\r\n"); fputs($socket, "\r\n"); fputs($socket, $this->Corpo); fputs($socket, "\r\n\r\n"); //verifica se existe arquivo para ser enviado junto if($this->NumAnexos>0) { for($i=0; $i<$this->NumAnexos; $i++) { //Pega o tipo para o MIME TYPE $tipo=$this->PegarTipo($this->Anexos[$i]); strtolower($tipo); switch($tipo) { case "jpeg": case "jpg": $Tipo="image/jpeg"; break; case "gif": $Tipo="image/gif"; break; case "doc": $Tipo="application/msword"; break; case "rar": $Tipo="application/rar"; break; case "zip": $Tipo="application/zip"; break; default: $Tipo="application/octet-stream"; break; } //Pega o nome do arquivo $Nome=$this->PegarNome($this->Anexos[$i]); fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq\r\n"); fputs($socket, "Content-Type: " . $Tipo . "; name=\"". $Nome . "\"\r\n"); fputs($socket, "Content-Transfer-Encoding: base64\r\n"); fputs($socket, "Content-Disposition: attachment; filename=\"" . $Nome . "\"\r\n"); fputs($socket, "\r\n"); fputs($socket, $this->CodarArquivo($this->Anexos[$i])); fputs($socket, "\r\n"); } fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq--\r\n"); } //Avisa o servidor que ja acabei de enviar a mensagem fputs($socket, "\r\n.\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); //Sai do servidor e fecha o socket fputs($socket, "QUIT\r\n"); fclose($socket); //Retorna um TRUE pra dizer que o email foi enviado if ($this->erros==TRUE) return FALSE; else return TRUE; } } } ?> Fatal error: Class 'SendMail' not found in D:\sites\teste\smtp\index.php on line 10 bom este erro acima eu corrigi, foi só alterar a abertura do php, trocar o </ por <?php,. porém agora ele fica lá processando um tempão, para ser sincero, deixou o pc lento e não terminou a execussão. flw Compartilhar este post Link para o post Compartilhar em outros sites
Wendel F 0 Denunciar post Postado Abril 3, 2008 DEU CERTO !!!!! Cara não to acreditando... Passei 2 dias inteiros tentando arrumar uma forma de mandar email através de formulário, testei diversas classes, funções e nada. Uma hora eu encontrava uma solução que não atendia, outra as vezes parecia que atendia mas não funcionava. UFA... Só lembrando o meu problema era o seguinte: Enviar Formulário por email(sem anexo mesmo), em ambiente Windows+PHP rodando em servidor local, utilizando servidor SMTP externo, já que não tenho servidor SMTP rodando aqui na minha rede. Depois de várias tentativas enfim deu certo ! :-) Obrigado ! Compartilhar este post Link para o post Compartilhar em outros sites
Raficcha 1 Denunciar post Postado Agosto 7, 2008 Tenho um pergunta. pra que serve a linha $Email->Barra="\\"; //barra pra windows pra que serve essa "\\"????? ========================== a sim... não estou conseguindo enviar o email. coloquei um arquivo chamado "temp.dat" dentro da pasta aonde o arquivo que envia o email e a classe estão, mas o email não é enviado e acontece um erro dizendo que o tempo maximo para o envio é de 60 segundos.. pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Setembro 18, 2008 Pessoal, atualizei a classe, com algumas funcionalidades ok? /** * 0.1 * Classe inicial * * 0.2 * Possibilidade de envio de email HTML * * 0.3 * Suporte a varios TOs separados por; * **/ Raficcha:Isso foi removido, não servia para nada mesmo. =D Compartilhar este post Link para o post Compartilhar em outros sites
hgb7 3 Denunciar post Postado Setembro 18, 2008 A parte do Anexo não funcionou aqui... Troquei o: $Email->Anexar("arqui1"); por $Email->anexarArquivo("arqui1"); mas mesmo assim, muito obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Setembro 18, 2008 Certo hgb7, Ja mudei o nome do método. Mas pq não funcionou? posta o código ai pra gente ver =) Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Martins - SC 0 Denunciar post Postado Setembro 18, 2008 Aqui no meu deu esse erro: Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/admin/public_html/testes/email/smtp.class.php on line 58 sabe me dizer o quer dizer esse erro? Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Setembro 18, 2008 Parece que você não esta com o PHP 5, pois ele não esta reconhecendo a palavra "public" Compartilhar este post Link para o post Compartilhar em outros sites
hgb7 3 Denunciar post Postado Setembro 19, 2008 $Email->anexarArquivo("D:\Documents and Settings\henrique\Meus documentos\jantar_acridas080918.jpg"); //Anexo 1 //$Email->anexarArquivo("arqui2"); //Anexo 2 Mudei só isso mesmo... mas quando envio com anexo aparece isso: Corpo do email --90ccb306c46c988e47d6799e2108ccf7 Content-Type: application/octet-stream; name="jantar_acridas080918" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="jantar_acridas080918" /9j/4AAQSkZJRgABAQEBLAEsAAD... (e um monte de codigo da mensagem...) Como fazer para a aparecer a imagem? dá para configurar para mandar para várias pessoas ao mesmo tempo? precisa do phpmailer para rodar este script? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Setembro 19, 2008 seu arquivo não tem extenssão? pode ser isso, não testei =/ só precisa de suporte à socket. quando for usar caminhos windows, use \\ "D:\\Documents and Settings\\henrique\\Meus documentos\\jantar_acridas080918.jpg" para escapar os caracteres. para enviar para varios emails, faça assim $Email->EmailPara = 'bruno@gmail.com;bruno2@gmail.com;bruno3@gmail.com' []'s Compartilhar este post Link para o post Compartilhar em outros sites
hgb7 3 Denunciar post Postado Setembro 19, 2008 Opa! funcionou... vlw... só que chegou com .dat ... sabe pq? e como mandar para vários email, sem os outros veem que foi para vários? somente com aqueles "emails lista" ? Obrigado pela atenção Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Setembro 19, 2008 foi .dat? aheuahe sei pq não, só vendo o código :P/> esse negocio de ir como oculto é furada, ainda não consegui fazer isso. Uso em um sistema de cotações, e para que os fornecedores não vejam o email uns dos outros, eu envio "um à um", é mais garantido. mude o email e envie outra vez, não precisa criar a classe outra vez foreach($fornecedores as $fornecedor) { $Email->EmailPara = $fornecedor; $Email->Enviar(); } sacou? http://forum.imasters.com.br/public/style_emoticons/default/clap.gif/> Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Martins - SC 0 Denunciar post Postado Setembro 19, 2008 Como faço para o email ser enviado no formata html? Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Setembro 19, 2008 Pessoal, atualizei o teste na mensagem principal tambem. para enviar email HTML, é só colocar o HTML no CORPO $smtp->Corpo = '<b>MEU CORPO HTML</b>'; Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Martins - SC 0 Denunciar post Postado Setembro 19, 2008 Fiz isso mais naum deu certo brother, olha só Naum fica em html e a acentuação fica com simbolos /* * Duvidas: * http://www.fai.com.br/forum && * scorninpc[(at])gmail([dot)]com && * #motd@irc.freenode.net */ include "smtp.class.php"; $Email = new SMTPMAIL(); $Email->Servidor="smtp.sdfsdf.com.br"; //Servidor $Email->Autenticado=TRUE; //É autenticado $Email->Usuario="asdsad"; //Usuario $Email->Senha="ssss"; //Senha $Email->EmailDe="$email"; //Seu email $Email->EmailPara="sdfsdf@adasd"; //Destino $Email->Assunto="Formulário de contato Mercoplaza.com.br"; //Assunto $Email->Corpo="<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd> <html xmlns=http://www.w3.org/1999/xhtml> <head> <meta http-equiv=Content-Type content=text/html; charset=utf-8 /> <title>Formulario de contato</title> <style type=text/css> .tabela { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color:#666666; background: #ffffff; BORDER-RIGHT: #666666 1px dotted; BORDER-TOP: #666666 1px dotted; BORDER-LEFT: #666666 1px dotted; BORDER-BOTTOM: #666666 1px dotted; } </style> </head> <body> <table width=600 border=0 class=tabela> <tr> <td valign=top></div> <p><strong>Nome:</strong><br> $nome<br> <br> <strong>Telefone:</strong><br> $telefone<br> <br> Email:<br> $email<br> <br> Mensagem: <br> $mensagem<br> <br> <br> <br> </p> </td> </tr> </table></body> </html> "; //Corpo /* $Email->anexarArquivo("arqui1"); //Anexo 1 $Email->anexarArquivo("arqui2"); //Anexo 2 */ if($Email->Enviar()) //Envia o email echo "Email enviado com sucesso, obrigado pelo contato."; else echo "Email não pode ser enviado"; Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Setembro 19, 2008 beleza, sobre os caracteres, eu estou usando ISO-8859-1 no email, e você UTF-8 no html, não sei até que ponto isso pode inteferir. talvez setar a codificação ao enviar email seja uma melhoria a ser feita. Compartilhar este post Link para o post Compartilhar em outros sites