Buthy 0 Denunciar post Postado Setembro 9, 2011 Então... Quando preencho o formulário sem nenhum campo com acentos, ele envia o e-mail... Já se em algum campo tem algum acento, o e-mail não é enviado... O código é o seguinte: <?php $msg = '<!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=iso-8859-1" /> <title>XXXXXXXXXXXXXXX</title> </head> <body> <font color="#4a4a4a" font-family="Arial, Helvetica, sans-serif"> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr> <td align="center" valign="top"> <table width="596" cellspacing="10" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0" > <tr> <td valign="top" width="390"><img src="xxxxxxxxxxxxxx" border="0" alt="xxxxxxxxxxx"/></td> <td valign="top" width="210" align="right"><font size="-3">Data: '.date("d/m/Y").'</font></td> </tr> <tr> <td valign="top" colspan="2" style="font-size:12px color:#FFFFFF;"><br/> <br/><strong>Dados:</strong><br/><hr/> Nome: '.$nome.'<br/> E-mail: '.$email.'<br/> MSN (Messenger): '.$msn.'<br/> Telefone: '.$telefone.'<br/> Cidade: '.$cidade.'<br/> Como soube de nós: '.$comosoube.'<br/> <br/> <br /><strong>Orçamento para: '.$conteudo.' <br/><strong>Mensagem:</strong><br/><hr/> '.nl2br($mensagem).' </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </font> </body> </html>'; $cabecalho = 'MIME-Version: 1.0'."\r\n"; $cabecalho .= 'Content-type: text/html; charset=iso-8859-1'."\r\n"; //para html $cabecalho .= "From: ".$nome." <".$email.">\n"; $cabecalho .= "Reply-To: xxxxxxxxxxx <xxxxxxxxxxxxxxxxxx>\r\n"; $assunto = "Orçamento - ".$titulo; mail('xxxxxxxxxxxxxxxxx',$assunto,$msg,$cabecalho); if(!mail) { ?> <script type="text/javascript"> alert('Falha ao enviar.'); window.history.back(-1); </script> <?php }else { ?> <script type="text/javascript"> alert('Obrigado! Em breve responderemos.'); window.location="index.php"; </script> <?php } ?> Estou tentando de tudo... E nada... Alguém sabe como resolver?? Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
lambrusco 3 Denunciar post Postado Setembro 9, 2011 ja tentou mudar o charset? Compartilhar este post Link para o post Compartilhar em outros sites
Buthy 0 Denunciar post Postado Setembro 9, 2011 Já... O problema só acontece nas variáveis PHP, o resto dos acentos exibem normalmente... utilizei o htmlentities($variavel), daí estava enviando o e-mail, mas o á das variáveis php fica assim: á Somente no assunto, que é exibida uma variavel php, o acento fica normal... Compartilhar este post Link para o post Compartilhar em outros sites
lambrusco 3 Denunciar post Postado Setembro 9, 2011 tente ut8_decode ou utf8_encode Compartilhar este post Link para o post Compartilhar em outros sites
Buthy 0 Denunciar post Postado Setembro 9, 2011 se eu coloco isso na variável, e ela não tem acento, o e-mail é enviado normalmente... já se na variável tem uma palavra com acento, o e-mail não chega.... Compartilhar este post Link para o post Compartilhar em outros sites
lambrusco 3 Denunciar post Postado Setembro 9, 2011 kra você ta colocando cabeçalho e ainda dentro da mensagem outro cabeçalho ? oO Compartilhar este post Link para o post Compartilhar em outros sites
Buthy 0 Denunciar post Postado Setembro 9, 2011 Eu tiro o <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" /> de dentro da variavel $msg e mesmo assim não funciona... Compartilhar este post Link para o post Compartilhar em outros sites
lambrusco 3 Denunciar post Postado Setembro 9, 2011 complexo hein, ja pensou em usar alguma classe pra envio Phpmailer ? Compartilhar este post Link para o post Compartilhar em outros sites
Buthy 0 Denunciar post Postado Setembro 9, 2011 Se resolver o problema eu uso! ehehe Tem algum tutorial de como fazer? Compartilhar este post Link para o post Compartilhar em outros sites
lambrusco 3 Denunciar post Postado Setembro 9, 2011 http://blog.thiagobelem.net/enviar-e-mails-pelo-php-usando-o-phpmailer/ Compartilhar este post Link para o post Compartilhar em outros sites
Buthy 0 Denunciar post Postado Setembro 9, 2011 Está dando o seguinte: The following From address failed: xxxxxxxxxxxxxxxx@gmail.com Não foi possível enviar o e-mail. Informações do erro: The following From address failed: xxxxxxxxxx@gmail.com SMTP server error: 5.7.0 Must issue a STARTTLS command first. a2sm508561yhj.7 Compartilhar este post Link para o post Compartilhar em outros sites
lambrusco 3 Denunciar post Postado Setembro 9, 2011 use isMail() no lugar de isSmtp() Compartilhar este post Link para o post Compartilhar em outros sites
Buthy 0 Denunciar post Postado Setembro 9, 2011 Ok.. funcionou! Mas nao tem explicacao o problema que as vezes o e-mail é enviado, e as vezes nao! AFF! Uma coisa que eu notei é que, quando coloco no formulário um e-mail qualquer, por exemplo jsdakd@jsadkjads.com O e-mail é enviado! E chega na minha caixa de mensagem, q eh @gmail.com Daí quando eu coloco algum email normal, por exemplo email@hotmail.com ou email@gmail.com A mensagem não chega no meu e-mail! <?php require("class.phpmailer.php"); $mail = new PHPMailer(); function anti_injection($sql){ // remove palavras que contenham sintaxe sql $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql); $sql = trim($sql);//limpa espaços vazio $sql = strip_tags($sql);//tira tags html e php $sql = addslashes($sql);//Adiciona barras invertidas a uma string return $sql; } $nome = anti_injection($_POST['nome']); $email = anti_injection($_POST['email']); $msn = anti_injection($_POST['msn']); $telefone = anti_injection($_POST['telefone']); $cidade = anti_injection($_POST['cidade']); $mensagem = anti_injection($_POST['mensagem']); $comosoube = anti_injection($_POST['soube']); $tipo = anti_injection($_POST['tipo']); $tipo1_convidados = anti_injection($_POST['tipo1_convidados']); $tipo1_igreja = anti_injection($_POST['tipo1_igreja']); $tipo1_localfesta = anti_injection($_POST['tipo1_localfesta']); $tipo1_data = anti_injection($_POST['tipo1_data']); $tipo1_obs = anti_injection($_POST['tipo1_obs']); $tipo2_formandos = anti_injection($_POST['tipo2_formandos']); $tipo2_curso = anti_injection($_POST['tipo2_curso']); $tipo2_instituicao = anti_injection($_POST['tipo2_instituicao']); $tipo2_data = anti_injection($_POST['tipo2_data']); $tipo2_obs = anti_injection($_POST['tipo2_obs']); $tipo3_qtd = anti_injection($_POST['tipo3_qtd']); $tipo3_data = anti_injection($_POST['tipo3_data']); if ($tipo == 'tipo_1'){ $titulo = 'Casamento / Festa de 15 anos'; $conteudo = 'Casamento / Festa de 15 anos</strong><hr/> Número de convidados: '.$tipo1_convidados.'<br /> Igreja: '.$tipo1_igreja.'<br /> Local da festa: '.$tipo1_localfesta.'<br /> Data: '.$tipo1_data.'<br /> Ítens selecionados: '; if(isset($_POST["tipo1"])) { for($i = 0; $i < count($_POST["tipo1"]); $i++) { $conteudo .= $_POST["tipo1"][$i].", "; } }else{ $conteudo .= "Nenhum ítem selecionado."; } $conteudo .= '<br />Observações: '.$tipo1_obs.'<br />'; } if ($tipo == 'tipo_2'){ $titulo = 'Formatura'; $conteudo = 'Formatura</strong><hr/> Número de formandos: '.$tipo2_formandos.'<br /> Curso: '.$tipo2_curso.'<br /> Instituição: '.$tipo2_instituicao.'<br /> Data: '.$tipo2_data.'<br /> Ítens selecionados: '; if(isset($_POST["tipo2"])) { for($i = 0; $i < count($_POST["tipo2"]); $i++) { $conteudo .= $_POST["tipo2"][$i].", "; } }else{ $conteudo .= "Nenhum ítem selecionado."; } $conteudo .= '<br />Observações: '.$tipo2_obs.'<br />'; } if ($tipo == 'tipo_3'){ $titulo = 'Book'; $conteudo = 'Book</strong><hr/> Quantidade de fotos: '.$tipo3_qtd.'<br /> Data: '.$tipo2_data.'<br /> Ítens selecionados: '; if(isset($_POST["tipo3"])) { for($i = 0; $i < count($_POST["tipo3"]); $i++) { $conteudo .= $_POST["tipo3"][$i].", "; } }else{ $conteudo .= "Nenhum ítem selecionado."; } $conteudo .= '<br />'; } // Inicia a classe PHPMailer $mail = new PHPMailer(); //$mail->IsMail(); // Define o remetente $mail->From = $email; // Seu e-mail $mail->FromName = $nome; // Seu nome // Define os destinatário(s) $mail->AddAddress('email@gmail.com'); //$mail->AddCC('ciclano@site.net', 'Ciclano'); // Copia //$mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); // Cópia Oculta // Define os dados técnicos da Mensagem $mail->IsHTML(true); // Define que o e-mail será enviado como HTML $mail->CharSet = 'iso-8859-1'; // Charset da mensagem (opcional) // Define a mensagem (Texto e Assunto) // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= $mail->Subject = "Orçamento - ".$titulo; // Assunto da mensagem $mail->Body = ' <!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=iso-8859-1" /> <title>xxxxxxxxxxxxxxx</title> </head> <body> <font color="#4a4a4a" font-family="Arial, Helvetica, sans-serif"> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr> <td align="center" valign="top"> <table width="596" cellspacing="10" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0" > <tr> <td valign="top" width="390"> <img src="http://www.xxxxx.com.br/images/cabecalho_email.png" border="0" alt="xxxxxxx"/> </td> <td valign="top" width="210" align="right"> <font size="-3">Data: '.date("d/m/Y").'</font> </td> </tr> <tr> <td valign="top" colspan="2" style="font-size:12px color:#FFFFFF;"><br/> <br/><strong>Dados:</strong><br/><hr/> Nome: '.$nome.'<br/> E-mail: '.$email.'<br/> MSN (Messenger): '.$msn.'<br/> Telefone: '.$telefone.'<br/> Cidade: '.$cidade.'<br/> Como soube de nós: '.$comosoube.'<br/> <br/> <br /><strong>Orçamento para: '.$conteudo.' <br/><strong>Mensagem:</strong><br/><hr/> '.nl2br($mensagem).' </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </font> </body> </html>'; $mail->AltBody = "Este é o corpo da mensagem de teste, em Texto Plano! \r\n"; // Envia o e-mail $enviado = $mail->Send(); // Limpa os destinatários e os anexos $mail->ClearAllRecipients(); $mail->ClearAttachments(); // Exibe uma mensagem de resultado if ($enviado) { ?> <script type="text/javascript"> alert('Obrigado! Em breve responderemos.'); window.location="index.php"; </script> <?php }else{ ?> <script type="text/javascript"> alert('Falha ao enviar.'); window.history.back(-1); </script> <?php } ?> Tentei deixar o From vazio, e funcionou... aff! Compartilhar este post Link para o post Compartilhar em outros sites