Ir para conteúdo

POWERED BY:

Arquivado

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

intao

[Resolvido] como faço um Formmail em php que aceite o envio de pa

Recommended Posts

Ou seja,que aceite o envio de codigos HTML sem distorcer o codigo.

 

Aki o exemplo do erro quando enviado uma imagem pelo meu formmail =

<a href=\"<a href="http://tinypic.com">http://tinypic.com</a>\" target=\"_blank\"><
img src=\"<a href="http://i33.tinypic.com/2nappif.jpg\">http://i33.tinypic.com/2nappif.jpg\</a>
" border=\"0\" alt=\"Image and video hosting by TinyPic\"></a>

Aki a configuração atual do Formmail =

<?php

include("config.php");

//Testa campos obrigatórios
if ($nome!="" and $email!="")
	{
	$msg.="Seu nome: $nome\n";
	$msg.="URL: $url\n";
    $msg.="E-mail: $email\n";
	$msg.="Assunto: $assunto\n";
	$msg.="Mensagem: $mensagem\n";
	if (@ mail ($mail_destino,$assunto,$msg))
		{
		//Imprimindo confirmação de envio
		echo 
			"
			<html>
		<center><meta http-equiv=refresh content=5;URL=index2.php></html>";
			echo "$nome, sua mensagem<br>foi enviado com sucesso!<br>";
			echo "Ate mais!<br><br></center>
			";
		}
		else
		echo
			"
                  <meta http-equiv=refresh content=5;URL=index2.php>
			</html><center><br><br><font color=red>
			<b>Erro ao enviar e-mail!</b>
			</font></center>
			";
	}
else
	{
	//Alerta sobre os campos obrigatórios
	echo 
		"
		<br><br><center>
		$msg_erro <br><br>
		<a href=\"javascript:window.history.go(-1)\" class=\"links\">Por favor, volte e preencha corretamente.</a>
		</center>
		";
	}
?>

Antes de tudo,muito obrigado pela atenção e desculpe a ignorancia...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O proprio manual do PHP explica isso.

Veja a página da função mail() no sites deles e leia o Exemplo #4 Enviando email HTML.

 

 

Valeu andré,era isso mesmo,me desculpe fazem uma pergunta meio besta,é porque não sou programador,se me permite,gostaria de saber se tem jeito de inserir um outro valor dentro de um ja existente,queria inserir este por post,assim ex:

 

<?php
// multiple recipients
$to  = 'email@email.com' . ', '; // note the comma

// subject
$subject = 'Birthday Reminders for August';

// corpo
$corpo ="\n";(este seria o novo valor)

// message
$message.= '
<html>
<head>
 <title>Birthday Reminders for August</title>
</head>
<body>
==============> Gostaria de inserir este($corpo) aqui,entre "<body>" por post,tem como ? <=======================
</body>
</html>';

/* Atenção se você pretende inserir numa variável uma mensagem html mais
 complexa do que essa sem precisar escapar os carateres 
 necessários pode ser feito o uso da sintaxe heredoc, consulte tipos-string-sintaxe-heredoc */

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";


// Mail it
mail($to, $subject, $message, $headers, $corpo);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria uma varíavel só pra receber esse valor que vai ficar entre o <body> e concatena pra inserir ali dentro.

 

PHP

<?php
// multiple recipients
$to  = 'email@email.com' . ', '; // note the comma

// subject
$subject = 'Birthday Reminders for August';

// corpo
$corpo = $_POST['corpo'];

// message
$message.= '
<html>
<head>
 <title>Birthday Reminders for August</title>
</head>
<body>
'.$corpo.'
</body>
</html>';

/* Atenção se você pretende inserir numa variável uma mensagem html mais
 complexa do que essa sem precisar escapar os carateres 
 necessários pode ser feito o uso da sintaxe heredoc, consulte tipos-string-sintaxe-heredoc */

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";


// Mail it
mail($to, $subject, $message, $headers, $corpo);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom,e muito obrigado pela atenção diego,mais gostaria de saber porque este metodo desativa a incorporação de "html",por ignorancia minha,pensei ki se descobrisse um jeito de inserir o valor "$corpo" dentro do valor "$message" que graças a você descobri,imaginei que poderia inserir pelo campo "$corpo" do formulario codigos htmls(por exemplo: uma imagem com texto em html),mas pelo ki vi,de alguma forma a inserção de html é anulada no valor "$corpo",ou seja,como valido a inserção de html no valor "$corpo" ? ou intão,se existir esta possibilidade,como inserir codigo html pelo campo "$message" do formulario de forma valida?

Desculpe te importunar novamente,e agredeço muito sua compreenção e atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso, você está enviando o texto de um campo <input type="text">, e que realmente é um texto puro.

 

Caso você queira enviar uma mensagem mesmo em HTML, você poderia utilizar um editor de texto que gere tal HTML como o:

- TinyMCE (http://tinymce.moxiecode.com/)

- CKEditor (http://ckeditor.com/)

 

Quando você enviar a sua mensagem do formulário que contem o seu texto em HTML, ele será inserido normalmente lá no campo e enviado como você ta imaginando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso, você está enviando o texto de um campo <input type="text">, e que realmente é um texto puro.

 

Caso você queira enviar uma mensagem mesmo em HTML, você poderia utilizar um editor de texto que gere tal HTML como o:

- TinyMCE (http://tinymce.moxiecode.com/)

- CKEditor (http://ckeditor.com/)

 

Quando você enviar a sua mensagem do formulário que contem o seu texto em HTML, ele será inserido normalmente lá no campo e enviado como você ta imaginando.

 

Ola Diego,sou muito burro mesmo,até agora não consegui,nem explicar direito axo ki não consegui,porque o que eu estou tentando fazer é : atraves do campo do formulario,eu inserir um codigo html(não seria uma vez,um unico,e sim diferentes quando eu quisesse,por isso keria ki fosse pelo campo do formulario,pra mim não precisar mexer toda hora se fosse um codigo fixo na pagina php do formmail);exemplo(uma imagem) = "
<a href="http://tinypic.com" target="_blank"><img src="http://i37.tinypic.com/2nappif.jpg" border="0" alt="Image and video hosting by TinyPic"></a>
"só queria ki esta chegasse formatado no email(detralhe:como pode ver,eu colocaria ela ja formatada) só preciso que esse codigo chegasse formatado,ki até agora não consegui fazer chegar,não existe alguma maneira assim ex: "<input type="text/html">" ? Novamente peço desculpas pela ignorancia e pelo incomodo,é ki não sou programador,e agredeço a paciencia e atenção.

"(Aberto a ajuda de outros programadores,toda ajuda é bem vinda)"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o campo texto normal.

 

FORMULÁRIO:
<input type="text" name="corpo">

PHP:
$corpo = $_POST['corpo']; // Aqui ele recebe o código HTML enviado pelo formulário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o campo texto normal.

 

FORMULÁRIO:
<input type="text" name="corpo">

PHP:
$corpo = $_POST['corpo']; // Aqui ele recebe o código HTML enviado pelo formulário.

Mais uma vez obrigado pela atenção Diego,intão diego só desta maneira o email não é ki não chega formatado,ele nem é enviado.

O unico jeito ki tive sucesso até agora foi colocando o codigo html diretamente na pagina php do formmail,e preciso colocar por post.

 

Estes são os arquivos ki estou usando = Arquivos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta o seguinte no PHP:

$corpo = htmlspecialchars_decode($_POST['corpo']);

Isso irá forçar a decodificação ser como HTML.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta o seguinte no PHP:

$corpo = htmlspecialchars_decode($_POST['corpo']);

Isso irá forçar a decodificação ser como HTML.

 

Desculpe,mais ainda não esta enviando "email.php":

<?php
// multiple recipients
$to  = 'meuemail@email.com' . ', '; // note the comma

// assunto
$assunto.= '';

// corpo
$corpo = htmlspecialchars_decode($_POST['corpo']);

// message
$message.= '
<html>
<head>
<title></title>
</head>
<body>
'.$corpo.'
</body>
</html>';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Mail it
mail($to, $assunto, $message, $headers, $corpo);
?>

Só para não haver duvidas esta é a pagina do form "formulario.php":

<form name="form1" method="post" action="email.php">
<table width="100" border="0" cellspacing="0" cellpadding="0" align="left">
    <tr bgcolor="#FFFFFF"> 
      <td valign="top" width="100" nowrap><font class="texto">Assunto:</font></td>
      <td> 
        <input class="form_campos" type="text" name="assunto" size="16">
      </td>
    </tr> 
    <tr bgcolor="#FFFFFF"> 
      <td valign="top" width="100" nowrap><font class="texto">Corpo do post:</font></td>
      <td> 
      <textarea class="form_campos" cols="80" name="corpo" rows="20"></textarea>
      </td>
    </tr>
        <div align="center"> 
          <input class="form_botao" type="submit" name="Enviar" value="Enviar Mensagem">
          <input class="form_botao" type="reset" name="Limpar" value="Limpar">
        </div>
 
</form>

Ja quando coloco só texto sem formatação,é enviado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não está enviando email ou não está indo como HTML?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não está enviando email ou não está indo como HTML?

 

Intão Diego,quando ensiro qualquer codigo html,simplismente o email não é enviado,mas quando ensiro apenas texto,o email imediatamente é enviado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta o seguinte:

 

FORMULÁRIO HTML:
<form name="form1" method="post" action="enviar_email.php">
<table width="100" border="0" cellspacing="0" cellpadding="0" align="left">
    <tr bgcolor="#FFFFFF"> 
      <td valign="top" width="100" nowrap><font class="texto">Assunto:</font></td>
      <td> 
        <input class="form_campos" type="text" name="assunto" size="16">
      </td>
    </tr> 
    <tr bgcolor="#FFFFFF"> 
      <td valign="top" width="100" nowrap><font class="texto">Corpo do post:</font></td>
      <td> 
      <textarea class="form_campos" cols="80" name="corpo" rows="20"></textarea>
      </td>
    </tr>
        <div align="center"> 
          <input class="form_botao" type="submit" name="Enviar" value="Enviar Mensagem">
          <input class="form_botao" type="reset" name="Limpar" value="Limpar">
        </div>
 
</form>

FORMMAIL PHP (enviar_email.php):
<?php
$para = "email_remetente@dominio.com";
$header = "MIME-Version: 1.0\n";
$header .= "Content-type: text/html; charset=iso-8859-1\n";
$header .= "From: email_remetente@dominio.com\n";
$header .= "Reply-to: email_destino@dominio.com\n";
$assunto = $_POST['assunto'];
$mensagem = "<html>
			<body>
			<a href='#'>
			Este é meu <b>primeiro</b> email em formato HTML!
			</a><br />
			".htmlspecialchars_decode($_POST['corpo'])."
			</body>
			</html>";
if(mail($para, $assunto, $mensagem, $header)){
	echo "E-mail enviado com sucesso!<br />";
	echo $mensagem;
}else{
	echo "Não foi possível enviar o e-mail!";
	echo $mensagem;
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo não diego,está é a imagem do email recebidoImagem Postada

 

(Aberto a ajuda de outros programadores,toda ajuda é bem vinda)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

O segredo do envio de emails em HTML para diferentes provedores de email é o formato da mensagem.

 

As mensagens enviadas ficam integradas no meio da págida de seu email, ou seja, não podemos enviar um código HTML completo (contendo <html> e <head>) pois o códígo HTML completo contem tags que só podem ser definidas uma vez, e que por sua vez já foram definidas na página.

 

Deste modo, devemos enviar a mensagem da seguinte forma:

 

<?
$Headers  = 'MIME-Version: 1.0' . "\r\n";
$Headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$Headers .= 'From: ' . $Origem . "\r\n";
$Headers .= 'X-Mailer: Website ErgoSum.com.br - PHP/' . phpversion() . "\r\n";

$Corpo = '<div style="font-size: 12px; color: #090;">
' . $Restante_do_HTML . '
</div>';

mail($Destino, $Titulo, $Corpo, $Headers);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente muito obrigado pela atenção Hidden,intão hidden esta acontecendo a mesma situação de antes,quando ensiro somente texto,consigo enviar com sucesso,mas quando ensiro qualquer codigo html o email simplismente não é enviado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo tenta isso, você pediu ajuda no meu e-mail:

 

<?php 
$para = "email_remetente@dominio.com"; 
$header  = "MIME-Version: 1.0" . "\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$header .= "From: email_remetente@dominio.com\n"; 
$header .= "Reply-to: email_destino@dominio.com\n"; 
$assunto = $_POST['assunto']; 
$mensagem = "<html> 
                        <body> 
                        <a href='#'> 
                        Este é meu <b>primeiro</b> email em formato HTML! 
                        </a><br /> 
                        ".htmlspecialchars_decode($_POST['corpo'])." 
                        </body> 
                        </html>"; 
if(@mail($para, $assunto, $mensagem, $header)){ 
        echo "E-mail enviado com sucesso!<br />"; 
        echo $mensagem; 
}else{ 
        echo "Não foi possível enviar o e-mail!"; 
        echo $mensagem; 
} 
?>

Falou, isso funciona corretamente, pq sempre uso, se continuar com problema, teste com outro servidor de e-mail.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente o código do Hidden, pois tem mais sentido.

 

E realmente, se não funcionar, pode ser o seu servidor de hospedagem por ser FREE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado HIDDEN pela ajuda,mas infelismente tambem quando ensiro qualquer codigo html(ao contrario de só texto)só chega a parte pré configurada("

<div style="font-size: 12px; color: #090;">
' . $Restante_do_HTML . '
</div>
").

Obrigado tambem Lucas Tiago pela ajuda,mas infelismente tambem quando ensiro qualquer codigo html(ao contrario de só texto)só chega a parte pré configurada("

<a href='#'> 
Este é meu <b>primeiro</b> email em formato HTML! 
</a><br />
</div>").

Agradeço tambem Diego pelo interesse na solução,mas o pior é que testei na hospedagem free e tambem na minha paga e nada.

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.