Ir para conteúdo

POWERED BY:

Arquivado

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

Freelife

[Resolvido] Form de email

Recommended Posts

Solução:

if(isset($_POST['nome']) && isset($_POST['anexo']) && isset($_POST['email'])){
	//Recebo as variáveis do flash
	$nome = $_POST['nome'];
	$num = $_POST['num'];
	$file = $_POST['anexo'];
	$from = $_POST['email'];
	$email_from = $from;
	$email_subject = "Info From Website";
	$email_txt = $_POST['mensagem'];

	$email_to = "seuemail@mail.com";

	$headers = "From: ".$email_from;

	$semi_rand = md5(time());
	$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

	$headers .= "\nMIME-Version: 1.0\n" .
	"Content-Type: multipart/mixed;\n" .
	" boundary=\"{$mime_boundary}\"";
	//Texto do e-mail
	$email_message = "Mensagem: $email_txt
	" . "\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . "Mensagem: $email_txt\n\n" . "\n\n";

	$email_message .= "

	" . "Nome: $nome" . "\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n";

	if($file != ""){
	// Anexo os arquivos
	$names = split(',',$file);
	foreach($names as $name) {
	if($name != ""){
	$anexo = "./imagens/" . $name;
	$fileatt = $anexo;
	$fileatt_type = "application/octet-stream";
	$fileatt_name = $name;

	$file = fopen($fileatt,'rb');
	$data = chunk_split(base64_encode(fread($file,filesize($fileatt))));
	fclose($file);

	$email_message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
	echo unlink("./imagens/" . $fileatt_name);
	}
	}
	}

	$email_message .= "--{$mime_boundary}--\n";


	$ok = @mail($email_to, $email_subject, $email_message, $headers);

	} else {
	echo "email invalido";
	}
	?>

Coloque as tags HTML como você quiser dentro da variável $email_menssage

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá berseck

 

Estamos quase chegando lah

estou fazendo algumas alterações co codigo que você postou, adaptando para as minhas necessidades.

Agora ele esta envianod o email sem as tags html,

porem estou com problemas nas quebras de linha quandorecebo a mensagem.

 

Segue meu codigo adapatado.

 

<?php

if(isset($_POST['nome']) && isset($_POST['email'])){

//Recebo as variáveis do flash

$nome = $_POST['nome'];

$cidade = $_POST['cidade'];

$estado = $_POST['estado'];

$telefone = $_POST['telefone'];

$from = $_POST['email'];

$email_from = $from;

$email_subject = "Contato";

$email_txt = $_POST['msg'];

 

$email_to = "contato@email_de_destino.com.br";

 

$headers = "From: ".$email_from;

 

$semi_rand = md5(time());

$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

 

$headers .= "\nMIME-Version: 1.0\n" .

"Content-Type: multipart/mixed;\n" .

" boundary=\"{$mime_boundary}\"";

//Texto do e-mail

$email_message = "Mensagem: $email_txt

" . "\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . "Mensagem: $email_txt\n\n" . "\n\n";

 

 

$email_message .= "

 

" . "Nome: $nome" . "\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n";

 

 

$email_message .= "--{$mime_boundary}--\n";

 

 

$ok = @mail($email_to, $email_subject, $email_message, $headers);

 

} else {

echo "email invalido";

}

?>

 

Estou recebendo a mensagem Assim:

 

Mensagem: Vamos fazer um teste Nome:

Frequencia Virtual

 

A quebra de linha entra a mensagem e o nome nao esta dando certo, tentei de algumas maneiras mas devo estar errando em algum lugar.

 

Desde já agradeço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu falei

 

use as tags html.......

$email_message = "Mensagem: $email_txt <br>" . "\n\n\" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . "Mensagem: $email_txt\n\n" . "\n\n";


$email_message .= "Nome: $nome" . "\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n";

Coloque <br> etc...

 

Você pode até fazer tudo de uma feita só assim:

$email_message = "Mensagem: $email_txt <br>" . "\n\n\" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . "Mensagem: $email_txt<br>Nome: $nome<br>Cidade: $cidade<br> etc<br> etc" . "\n\n";

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim:

 

$email_message = "Mensagem: $email_txt <br>

" . "\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . "Mensagem: $email_txt<br>Nome: $nome<br>Cidade: $cidade<br>Estado: $estado<br>Email: $from<br>Telefone: $telefone" . "\n\n";

 

O reseultado foi :

 

Mensagem:

tewtsts

 

 

Nome:

teste

 

 

Cidade:

teste

 

 

Estado:

teste

 

 

Email:

teste@

 

Depois fiz assim, como num exemplo que vi nos tutoriais, só que tirei alguns <br>:

 

$email_message = "Mensagem:". $msg. "<br>";

$email_message .= "\n\n--{$mime_boundary}\n";

$email_message .= "Content-Type:text/html; charset=\"iso-8859-1\"\n";

$email_message .= "Content-Transfer-Encoding: 7bit\n\n";

$email_message .= "Esse e-mail foi enviado pelo site<br>";

$email_message .= "Nome: $nome<br>";

$email_message .= "Cidade: $cidade<br>";

$email_message .= "Estado: $estado<br>";

$email_message .= "Telefone: $telefone<br>";

$email_message .= "E-mail: $from<br>";

$email_message .= "Mensagem: $msg \n\n";

 

E o resultado:

 

Esse e-mail foi enviado pelo site

Nome:

Teste

 

 

Cidade:

teste

 

 

Estado:

teste

 

 

Telefone:

1111111111

 

 

E-mail:

teste@

 

 

Mensagem:

teste

 

Problemas de quebra de linha.

Pode ser uma pequena falha mas nao to conseguindo resolver.

Tentei varias formas no html e nao tan dando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer assim:

$email_message = "Mensagem:". $msg. "<br>";
$email_message .= "\n\n--{$mime_boundary}\n";
$email_message .= "Content-Type:text/html; charset=\"iso-8859-1\"\n";
$email_message .= "Content-Transfer-Encoding: 7bit\n\n";
$email_message .= "<p>"
$email_message .= "Esse e-mail foi enviado pelo site";
$email_message .= "Nome:" . "$nome";
$email_message .= "Cidade:" . "$cidade";
$email_message .= "Estado:" . "$estado";
$email_message .= "Telefone:" . "$telefone";
$email_message .= "E-mail:" . "$from";
$email_message .= "Mensagem:" . "$msg";
$email_message .= "</p>";

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda nao funcionou.

 

fiz como você citou e tambem fiz assim

 

$email_message = "Mensagem:". $mensagem. "";

$email_message .= "\n\n--{$mime_boundary}\n";

$email_message .= "Content-Type:text/html; charset=\"iso-8859-1\"\n";

$email_message .= "Content-Transfer-Encoding: 7bit\n\n";

$email_message .= "Esse e-mail foi enviado pelo site<br>";

$email_message .= "Nome do cliente:" . "$nome" ;

$email_message .= "E-mail do cliente:". "$from";

$email_message .= "Mensagem:" . "$mensagem" . "\n\n";

 

e tambem nao deu

tambem tirei um \n do inicio e do fim e ainda assim nao deu

 

o que percebi neste codigo é que cada vez que precisa chamar um $email_message .= acontecem duas quebras de linha.

resultado:

 

Esse e-mail foi enviado pelo site

Nome do cliente:

 

joao

 

E-mail do cliente:

 

fsfgsfs@dfadaf

 

Mensagem:

 

testetesetse testes teste

 

 

Note que antes de chamar o nome do cliente tem apenas uma quebra de linha, o que seria correto.

mas dali em diante todos duas quebras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom cara sugiro então qeu vá a area de php descobrir o código afinal isso não é de flash...

 

No meu vem tudo certinho um em baixo do outro... então não faço ideia do que pode estar acontecendo.

 

Para você descobrir deveria pegar o código html recebido pelo e-mail através das propriedades do e-mail assim você vai ter uma pista do que ta ocorrendo...

 

E como lhe disse você pode sempre coloca tudo em uma linha só

 

$email_message = "Mensagem:". $mensagem. "<br>Nome:".$nome."<br>Cidade:".$cidade;

 

E assim por diante abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas a titulo de informação

 

Consultei no forum de PHP e nao obtive resposta.

Acredito que nao obtive resposta em virtude de estar tudo certo nos codigos postados.

 

O problema deve estar no meu outlook ja que fiz um teste enviando para o email de meu cliente e ele recebeu normalmente.

 

Vou deixar aqui o ultimo codigo que funcionou enviando para um email diferente do meu.

 

<?php
if(isset($_POST['email']) && isset($_POST['nome']) && isset($_POST['msg'])){
	$nome = $_POST['nome'];
	$from = $_POST['email'];
	$mensagem = $_POST['msg'];
	
	$email_subject = "E-mail do site"; // Assunto do e-mail
		
	$email_to = "contato@ddseventos.com.br"; // pra onde vai o e-mail
	
	$headers = "From: ".$from;
	
	$semi_rand = md5(time());
	$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
	  
	$headers .= "\nMIME-Version: 1.0\n" .
				"Content-Type: multipart/mixed;\n" .
				" boundary=\"{$mime_boundary}\"";  
	
	
	$email_message =	 "Mensagem:". $mensagem. "";
	$email_message .=	"\n--{$mime_boundary}\n";
	$email_message .=   "Content-Type:text/html; charset=\"iso-8859-1\"\n";
	$email_message .=	"Content-Transfer-Encoding: 7bit\n\n";
	$email_message .=	"Esse e-mail foi enviado pelo site<br>";
	$email_message .=	"Nome do cliente: $nome\n";
	$email_message .=	"E-mail do cliente: $from\n";
	$email_message .=	"Mensagem: $mensagem\n" .  "\n";  
	
	$ok = @mail($email_to, $email_subject, $email_message, $headers);
	
	if($ok){
		echo "retval=1";
	}else{
		echo "retval=0";
	}
}
else {
echo "O e-mail não existe";
}
?>

O problema deve realmente estar em outlook.

Obrigado ao Berseck pela ajuda foi de grande valor sua contribuição..

 

Abraços!!!

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.