Ir para conteúdo

POWERED BY:

Arquivado

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

Buthy

[Resolvido] Problema com acentuação ao enviar e-mail de formulári

Recommended Posts

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

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

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

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

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

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

×

Informação importante

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