Ir para conteúdo

Arquivado

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

Fabyo

Formulario de Email com Anexo II

Recommended Posts

Olá...sou super leiga em php....Tentei usar o codigo do php pra validar um formulario que fiz q tem os seguintes campos:cargoárea + o envio do arquivo, que no caso, será pra arquivos ".docs"...Tentei de tudo!Já busquei vários tutos.. e nada...Só não entendi o JS... onde eu coloco esse código java??Poxa.. desculpas.. mas to tentando aprender na marra..Bjussssssssssss

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tentou usar o código pra validar?Não vai funcionar não! Procura ai no forum sobre validação de formulário que você vai achar o que procura com certeza, e quanto ao JS basta você criar um arquivo funcoes.js,no mesmo diretório onde se encontra os outros arquivos,pois..veja"<script type="text/javascript" src="funcoes.js"></script>"..e vai dar certo!Fabyo, muito bom meu velho, ta funcionando perfeito aqui!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

td certinho e funcionndo.

 

Duvida, como fço para que seja enviado como copia oculta

tipo, para que um remetente nao veja que outro recebeu.

 

 

 

Haaaaa, valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo,

 

Coloquei os files em: www.xboxportugal.com/email.php

 

Testei o script e ele me diz o seguinte: O email foi enviado com sucesso, 2 anexos

 

O problema é que nunca recebo o email :(

***********************************************************

 

Olá tudo bem,

 

você poderia me enviar estes arq. pq estou precisando de um formulario assim pois estou aprendendo a programar.

Não entendi muito oq o Fabyo colocou pq estava faltando arq, sei lá e tb tinha uma linha q precisa configurar e não sei.

 

você pode me ajudar?

 

Aguardo seu retorno e muito obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá... Também testei o script, o e-mail chega mas o anexo não, o que recebo é apenas um arquivo txt vazio :unsure: Será que alguém poderia me ajudar.Obrigada.Si

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra quem não manja peguei o ótimo desempenho do fabyo colokei alguns campose arrumei os POST de algumas variaveis do Upload.phpagora só entrarAqui: http://www.mrsinformatica.com.br/Eduardo/HERBALIFE/Anexos/fazer o teste da pagina e depois baixar os arquivos para fazer estudo ;)Abraços e Sucesso em TUDO e a TODOS...

Alguém testou o codigo que nosso amigo ai modificou?? http://www.mrsinformatica.com.br/Eduardo/HERBALIFE/Anexos/eu testei e funfou mto bem. Só queria saber como setar um e-mail sem precisar especificar para quem enviar.Se alguem puder fazer isso.Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perdão pela demora da resposta. É que acabei de testar esse código e vi que ele funciona bem demais... Parabéns!!!

Alguém testou o codigo que nosso amigo ai modificou?? http://www.mrsinformatica.com.br/Eduardo/HERBALIFE/Anexos/eu testei e funfou mto bem. Só queria saber como setar um e-mail sem precisar especificar para quem enviar.Se alguem puder fazer isso.

Uma forma bastante simples, porém não muito segura é você colocar no campo value o e-mail desejado e colocar o campo como hidden. Ou seja: o valor é o seu e-mail porém ele não vai aparecer e não dá opção para o remetente alterar o e-mail.
<input name="destemail" type="hidden" id="destemail" value="SEU E-MAIL AQUI" />
[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

muuuuuuuuuuuuuuito booooooooooom

eu peguei ele e modifiquei pra um cliente...

gostaria de deixar aqui o link para voces verem..

 

http://www.praiatur.com.br/faleconosco2.ph...trabalheconosco

 

brigadao

 

 

OI amigão pode postar o download para essa modificação que você fez??

 

Só faltou a validação e eu faço isso em javaxrtipt

Compartilhar este post


Link para o post
Compartilhar em outros sites

Senhores:

 

Peço desculpas por reabrir esse tópico, o meu problema é que estou testanto esse script em dois sites mas não funcionaram, como podem ver:

 

http://br.geocities.com/valdecirlopis2/

http://site.pop.com.br/valdecirlopis

 

Fiz uma cópia de:

http://www.mrsinformatica.com.br/Eduardo/HERBALIFE/Anexos/

e não alterei nada. Porque nesse site funciona e nos meus não?

 

Um abraço bem de longe a todos do fórum!

Compartilhar este post


Link para o post
Compartilhar em outros sites

porque esta dando este erro?

 

\r\n"; $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n"; if(mail($email, $assunto, $mens, $headers)){ echo "O email foi enviado com sucesso, $anexos anexos"; } else { echo "Nao foi possivel enviar o email";}} ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Fabyo,

 

 

 

Tentei implementar o getimagesize e o imagesy para limitar a largura e altura do anexo mas não consegui, tem ideia de como fazer isso?

 

 

Abraços

 

 

Atendendo a pedidos eu fiz um sistema de envio de varios anexos ao mesmo tempo por email

 

eu fiz só a parte do envio dos anexos onde você escolhe a quantidade de anexos ate no limite de 5 pode aumentar se quiser só auterar o javascript que cria os campos

 

e aparte dos campos nome, cidade etc... vcs implementam do jeito que achar melhor

e se vcs pegarem um 1 sistema de envio de anexo mais esse aqui da para vcs entenderem a logica e modificar da maneira que quiserem

 

mas qualquer duvida só perguntar, e nesse novo sistema ele mostra quantos anexos foram enviados realmente caso algum nao foi enviado você vera a quantidade que foi com sucesso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho um arquivo no servidor que se chama 3502789.html

 

Como faço para quando alquem digitar no form o e-mail dele, o e-mail seja enviado para ele com aquele arquivo?. O melhor tem jeito de ser .zip? se não tiver não tem problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fábio,

desculpa eu te amolar...

vi sua postagem e estou tentando fazer algo parecido.

Invés de pegar um arquivo de post, estou pegando direto de um banco de dados.

Fiz parecido com que você me enviou, porém deu o seguinte erro:

 

Warning: mysql_result() [function.mysql-result]: arquivo not found in MySQL result index 6 in C:\xampp\htdocs\wa\exportacao_enviar_email.php on line 59

 

Warning: fread(): supplied argument is not a valid stream resource in C:\xampp\htdocs\wa\exportacao_enviar_email.php on line 60

 

Warning: fclose(): supplied argument is not a valid stream resource in C:\xampp\htdocs\wa\exportacao_enviar_email.php on line 61

 

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\wa\exportacao_enviar_email.php on line 85

Nao foi possivel enviar o email

 

O código dessas linha são:

$fp = mysql_result($resultado_arquivos,$i,'arquivo');

$anexo = chunk_split(base64_encode(fread($fp, $_FILES["file"]["size"][$i])));

fclose($fp);

 

Vou postar o arquivo completo:

 

<?php

 

include ("conexao.php");

 

$codigo_exportacao = $_GET['codigo_exportacao'];

$busca_informacoes = "SELECT * FROM exportacao WHERE codigo_exportacao='$codigo_exportacao'";

$resultado_busca_informacoes = mysql_query($busca_informacoes,$conexao);

$qtd_resultado_busca_informacoes = mysql_num_rows($resultado_busca_informacoes);

if ($qtd_resultado_busca_informacoes == 0)

{

echo "<script>alert('Arquivo não encontrado!')</script>";

echo "<script>self.location='exportacao.php'</script>";

exit;

}

else

{

$localizar_cliente = mysql_result($resultado_busca_informacoes,0,'cliente_exportacao');

$nref = mysql_result($resultado_busca_informacoes,0,'nref');

 

//localiza o email cadastrado

$sql_email_cliente = "SELECT * FROM clientes WHERE codigo_cliente='$localizar_cliente'";

$resultado_email_cliente = mysql_query($sql_email_cliente,$conexao);

$qtd_resultado_email_cliente = mysql_num_rows($resultado_email_cliente);

if ($qtd_resultado_email_cliente == 0)

{

echo "<script>alert('Cliente não encontrado!')</script>";

echo "<script>self.location='exportacao.php'</script>";

}

else

{

$email = mysql_result($resultado_email_cliente,0,'email_cliente');

$nome = mysql_result($resultado_email_cliente,0,'nome_cliente');

$mensagem = "teste";

$assunto = "testando email";

$anexos = 0;

$boundary = "XYZ-" . date("dmYis") . "-ZYX";

}

//final da localizacao do email

 

$mens = "--$boundary\n";

$mens .= "Content-Transfer-Encoding: 8bits\n";

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

$mens .= "$mensagem\n";

$mens .= "--$boundary\n";

 

//localizar arquivos

$sql_arquivos = "SELECT * FROM clientes WHERE codigo_cliente='$localizar_cliente'";

$resultado_arquivos = mysql_query($sql_arquivos,$conexao);

$qtd_resultado_arquivos = mysql_num_rows($resultado_arquivos);

if ($qtd_resultado_arquivos == 0)

{

echo "<script>alert('Cliente não encontrado!')</script>";

echo "<script>self.location='exportacao.php'</script>";

}

else

{

for($i = 0; $i < $qtd_resultado_arquivos; $i++)

{

$fp = mysql_result($resultado_arquivos,$i,'arquivo');

$anexo = chunk_split(base64_encode(fread($fp, $_FILES["file"]["size"][$i])));

fclose($fp);

 

$mens .= "Content-Type: ".$_FILES["file"]["type"][$i]."\n name=\"".$_FILES["file"]["name"][$i]."\"\n";

$mens .= "Content-Disposition: attachment; filename=\"".$_FILES["file"]["name"][$i]."\"\n";

$mens .= "Content-transfer-encoding:base64\n\n";

$mens .= $anexo."\n";

 

if($i + 1 == count($_FILES["file"]["name"]))

$mens.= "--$boundary--";

else

$mens.= "--$boundary\n";

 

if($_FILES["file"]['error'][$i] == 0)

{

$anexos++;

}

}

 

$headers = "MIME-Version: 1.0\n";

$headers .= "Date: ".date("D, d M Y H:i:s O")."\n";

$headers .= "From: \"Remetente\" <sfcmauricio@hotmail.com>\r\n";

$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";

 

 

if(mail($email, $assunto, $mens, $headers))

{

echo "O email foi enviado com sucesso, $anexos anexos";

}

else

{

echo "Nao foi possivel enviar o email";

}

}

//final de localizar os arquivos

}

 

?>

 

Agradeço desde já...fico no aguardo!

 

 

 

Atendendo a pedidos eu fiz um sistema de envio de varios anexos ao mesmo tempo por email

 

eu fiz só a parte do envio dos anexos onde você escolhe a quantidade de anexos ate no limite de 5 pode aumentar se quiser só auterar o javascript que cria os campos

 

e aparte dos campos nome, cidade etc... vcs implementam do jeito que achar melhor

e se vcs pegarem um 1 sistema de envio de anexo mais esse aqui da para vcs entenderem a logica e modificar da maneira que quiserem

 

mas qualquer duvida só perguntar, e nesse novo sistema ele mostra quantos anexos foram enviados realmente caso algum nao foi enviado você vera a quantidade que foi com sucesso

 

index.html

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Anexos</title>
<style> 
html, body {
	margin:0;
	padding:0;
}

#conteudo {
	position:absolute;
	width:340px;
	height:60px;
	top:50%;
	left:50%;
	margin-top:-30px;
	margin-left:-170px;
}

.add {
	position:absolute;
	cursor:pointer;
}
</style>
<script type="text/javascript" src="funcoes.js"></script>
</head>

<body>
<form action="upload.php" method="post" enctype="multipart/form-data" id="form1">
	<div id="conteudo">
		<input type="file" name="file[]" />
		<input type="button" value="Adicionar" onclick="Add()" />
		<span id="campos"></span><br />		
	<p>
	  <input type="submit" name="Submit" value="Enviar" />
	</p>
  </div>
</form>
</body>
</html>

upload.php

<?php
if (getenv("REQUEST_METHOD") == "POST")
{

set_time_limit(0);
//só para teste mas auterem essa parte para pegar os dados via post $_POST
$nome	  = "nome";
$email	 = "email";
$mensagem  = "mensagem";
$assunto   = "assunto";
$anexos	= 0;
$boundary = "XYZ-" . date("dmYis") . "-ZYX";

$mens  = "--$boundary\n";	
$mens .= "Content-Transfer-Encoding: 8bits\n";
$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; 
$mens .= "$mensagem\n";
$mens .= "--$boundary\n";

for($i = 0; $i < count($_FILES["file"]["name"]); $i++)
{
	if(is_uploaded_file($_FILES["file"]["tmp_name"][$i])){
		$fp = fopen($_FILES["file"]["tmp_name"][$i], "rb");
		$anexo = chunk_split(base64_encode(fread($fp, $_FILES["file"]["size"][$i])));		 
		fclose($fp);

		$mens .= "Content-Type: ".$_FILES["file"]["type"][$i]."\n name=\"".$_FILES["file"]["name"][$i]."\"\n";
		$mens .= "Content-Disposition: attachment; filename=\"".$_FILES["file"]["name"][$i]."\"\n";		
		$mens .= "Content-transfer-encoding:base64\n\n"; 
		$mens .= $anexo."\n";
		
		if($i + 1 == count($_FILES["file"]["name"])) 
			$mens.= "--$boundary--"; 
		else 
			$mens.= "--$boundary\n"; 
		
		if($_FILES["file"]['error'][$i] == 0) {
			$anexos++;
		}		
	}	
}

$headers  = "MIME-Version: 1.0\n";
$headers .= "Date: ".date("D, d M Y H:i:s O")."\n";
$headers .= "From: \"Remetente\" <email_do_remetente>\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";


if(mail($email, $assunto, $mens, $headers)){
	echo "O email foi enviado com sucesso, $anexos anexos";
} else {
	echo "Nao foi possivel enviar o email";
}	
}

?>

funcoes.js

 

NumeroCampo = 0;
function Add() {
	if(NumeroCampo < 4) {
		NumeroCampo++;
		data = "<span id='campo"+NumeroCampo+"'><input type=\"file\" name=\"file[]\" /> <input type=\"button\" value=\"Remover\" onclick=\"Delcampo('campo"+NumeroCampo+"')\" /></span>";
		campo = document.getElementById("campos");
		campo.innerHTML = campo.innerHTML + data;
	}	
}

function Delcampo(IDDiv) {
	var d = document.getElementById('campos');
	var olddiv = document.getElementById(IDDiv);
	d.removeChild(olddiv);
	NumeroCampo--;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito show mas agora nao esta aparecendo oq se digita nos texts field como faço?

 

php:

 

<?php
if (getenv("REQUEST_METHOD") == "POST")
{

set_time_limit(0);
//só para teste mas auterem essa parte para pegar os dados via post $_POST
$nome = $_POST["nome"];
$telefone= $_POST["telefone"];
$cidade= $_POST["cidade"];
$anexos = 0;
$boundary = "XYZ-" . date("dmYis") . "-ZYX";



$mens  = "--$boundary\n";       
$mens .= "Content-Transfer-Encoding: 8bits\n";
$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; 
$mens .= "$mensagem\n";
$mens .= "--$boundary\n";



for($i = 0; $i < count($_FILES["file"]["name"]); $i++)
{
        if(is_uploaded_file($_FILES["file"]["tmp_name"][$i])){
                $fp = fopen($_FILES["file"]["tmp_name"][$i], "rb");
                $anexo = chunk_split(base64_encode(fread($fp, $_FILES["file"]["size"][$i])));            
                fclose($fp);

                $mens .= "Content-Type: ".$_FILES["file"]["type"][$i]."\n name=\"".$_FILES["file"]["name"][$i]."\"\n";
                $mens .= "Content-Disposition: attachment; filename=\"".$_FILES["file"]["name"][$i]."\"\n";             
                $mens .= "Content-transfer-encoding:base64\n\n"; 
                $mens .= $anexo."\n";
                
                if($i + 1 == count($_FILES["file"]["name"])) 
                        $mens.= "--$boundary--"; 
                else 
                        $mens.= "--$boundary\n"; 
                
                if($_FILES["file"]['error'][$i] == 0) {
                        $anexos++;
                }               
        }       
}

$headers  = "MIME-Version: 1.0\n";
$headers .= "Date: ".date("D, d M Y H:i:s O")."\n";
$headers .= "From: \"Remetente\" <email_do_remetente>\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";



if(mail("email@email.com.br", $assunto, $mens, $headers)){
        echo "O email foi enviado com sucesso, $anexos anexos";
} else {
        echo "Nao foi possivel enviar o email";
}       
}

?>


index com os text fields

 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Anexos</title>
<style> 
html, body {
        margin:0;
        padding:0;
}

#conteudo {
        position:absolute;
        width:340px;
        height:60px;
        top:50%;
        left:50%;
        margin-top:-30px;
        margin-left:-170px;
}

.add {
        position:absolute;
        cursor:pointer;
}
</style>
<script type="text/javascript" src="funcoes.js"></script>
</head>

<body>
<form action="upload.php" method="post" enctype="multipart/form-data" id="form1">
        <div id="conteudo">
        <label>
        Nome
        <input name="nome" type="text" id="nome" />
        </label><br />
         <label>
        Telefone
        <input name="telefone" type="text" id="telefone"/>
        </label><br />
          <label>
     Cidade
        <input name="cidade" type="text" id="cidade"  />
        </label><br />
                <input type="file" name="file[]" />
                <input type="button" value="Adicionar" onclick="Add()" />
                <span id="campos"></span><br />         
        <p>
          <input type="submit" name="Submit" value="Enviar" />
        </p>
  </div>
</form>
</body>
</html>

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabio,

 

Estou tentando usar e fazer teste com o seu codigo de enviar email junto com anexo.

 

mais me da esse erro como posso proceder?

 

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\Mail\upload.php on line 49

Nao foi possivel enviar o email

 

deve ser alguma coisa de servidor de email?

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.