How to add image upload to this php code?

Asked

Viewed 178 times

0

I would like you to help me insert image upload into this php code!

<?php

$nomeresponsavel  =   $_POST['nomeresponsavel']; //pega os dados que foi digitado no ID subject.
$telefoneresponsavel  =   $_POST['telefoneresponsavel']; //pega os dados que foi digitado no ID subject.
$emailresponsavel  =   $_POST['emailresponsavel']; //pega os dados que foi digitado no ID message.
$senha  =   $_POST['senha']; //pega os dados que foi digitado no ID message.
$box  =   $_POST['box']; //pega os dados que foi digitado no ID message.

$headers  = "From: $email\r\n";
$headers .= "Reply-To: $email\r\n";


   $corpo = "Formulário enviado\n";

   $corpo .= "Nome Responsavel: " . $nomeresponsavel . "\n";
   $corpo .= "Telefone Responsavel: " . $telefoneresponsavel . "\n";
   $corpo .= "Email Responsavel: " . $emailresponsavel . "\n";
   $corpo .= "Senha: " . $senha . "\n";
   $corpo .= "Acordo: " . $box . "\n";

   $email_to = '[email protected]'; //substitua este email pelo seu email do seu site.

$status = mail($email_to, $name, $corpo, $headers); //enviando o email.

echo "<script> window.location.href = 'http://www.nomedosite.com/'; </script>"; //aqui você coloca uma página que será redirecionada.


?>
  • Will you send by attachment? Tehno example with the class Phpmailer, I found it better. If you want to pass you full example.

2 answers

0

If you want to include an image in the body of your email just replace the snippet

$headers  = "From: $email\r\n";
$headers .= "Reply-To: $email\r\n";
$corpo = "Formulário enviado\n";

for

$headers = "MIME-Version: 1.0\n";
$headers  = "From: $email\r\n";
$headers .= "Reply-To: $email\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
  $corpo .= "<img src=\"URL-DA-IMAGEM\" />\n<br>";
  $corpo .= "Formulário enviado\n";

If sending as an attachment you can use the Phpmailer class that Willian Coconut suggested or use the code below

PHP

<?php
if (isset($_POST['btn-enviar'])) {
//Variaveis de POST
//====================================================
$nomeresponsavel = $_POST['nomeresponsavel']; //pega os dados que foi digitado no ID subject.
$telefoneresponsavel = $_POST['telefoneresponsavel']; //pega os dados que foi digitado no ID subject.
$emailresponsavel = $_POST['emailresponsavel']; //pega os dados que foi digitado no ID message.
$senha = $_POST['senha']; //pega os dados que foi digitado no ID message.
$box = $_POST['box']; //pega os dados que foi digitado no ID message.
//====================================================
//email para o qual vamos enviar
//====================================================
$email = "[email protected]";
//====================================================
//Separador das partes do e-mail
//====================================================
$boundary = "XYZ-".md5(date("dmYis"))."-ZYX";
//====================================================
// Cabeçalho do email (evitar span)
//====================================================
$headers = "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-Type: multipart/mixed; ";
$headers .= "boundary=" . $boundary . PHP_EOL;
$headers .= "$boundary" . PHP_EOL;
//====================================================
//Definição da mensagem em HTML
//====================================================
$assunto = "ASSUNTO";
$mensagem = "--$boundary" . PHP_EOL;
$mensagem .= "Content-Type: text/html; charset='utf-8'" . PHP_EOL;
$mensagem .= "\n Nome: $nomeresponsavel " . PHP_EOL ."<br>"; 
$mensagem .= "\n Telefone: $telefoneresponsavel" . PHP_EOL ."<br>";
$mensagem .= "\n E-mail: $emailresponsavel" . PHP_EOL ."<br>"; 
$mensagem .= "\n Senha: $senha" . PHP_EOL ."<br>";
$mensagem .= "\n Box: $box" . PHP_EOL;
//====================================================
//Anexando um arquivo
//====================================================
$arquivo = isset($_FILES["arquivo"]) ? $_FILES["arquivo"] : FALSE;
if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){
$fp = fopen($_FILES["arquivo"]["tmp_name"],"rb");
$anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"]));
$anexo = base64_encode($anexo);
fclose($fp);
$anexo = chunk_split($anexo);
$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";
$mens .= "Content-Type: ".$arquivo["type"]."\n";
$mens .= "Content-Disposition: attachment; 
filename=\"".$arquivo["name"]."\"\n";
$mens .= "Content-Transfer-Encoding: base64\n\n";
$mens .= "$anexo\n";
$mens .= "--$boundary--\r\n";
}else{
$mens=$mensagem;
}
//====================================================
//Enviando o email
//====================================================
mail($email, $assunto, $mens, $headers); 
echo "Email enviado com Sucesso!";
//====================================================
}
?>

HTML

<form id="form-modal" action="" method="post" enctype="multipart/form-data" name="formulario">
<h3>Preencha o formulário abaixo</h3>
<p>
<label>Nome:</label>
<input type="text" name="nomeresponsavel">
</p>
<p>
<label>Telefone:</label>
<input type="text" name="telefoneresponsavel">
</p>
<p>
<label>E-mail:</label>
<input type="text" name="emailresponsavel">
</p>
<p>
<label>Senha:</label>
<input type="text" name="senha">
</p>
<p>
<label>Box:</label>
<textarea name="box"></textarea>
</p>

<p id="frase-form">Clique no botão abaixo para anexar o seu arquivo.</p>
</br>
<center>
</br>
<label>ANEXAR ARQUIVO</label>
</br>
</br>
</br>

<input id="btn-anexo" type="file" name="arquivo"/>

<input id="btn-envio" type="submit" name="btn-enviar" value="ENVIAR" />
</center>
</form>

0

I use the very functional and simplified Phpmailer class. I have this example for one or multiple recipients:

            <?php
            require("class.phpmailer.php");
            require("class.smtp.php");
            $anexoemail = $_FILES["arquivo"];
            $emails = $_POST["emails"]; 
            $usuarioEmail = $_SESSION['usuarioEmail'];
            $mensagem = utf8_decode("Aqui e o corpo da mensagem"); 
            $assunto = "Aqui vai o assunto";
            // Inicia a classe PHPMailer
            $mail = new PHPMailer();
            // Define os dados do servidor e tipo de conexão
            $mail->SetLanguage("br");
            $mail->IsSMTP(); // Define que a mensagem será SMTP
            $mail->Host = 'smtp.teste.com'; // Endereço do servidor SMTP (caso queira utilizar a autenticação, utilize o host smtp.seudomínio.com.br)
            $mail->SMTPAuth = true; // Usar autenticação SMTP (obrigatório para smtp.seudomínio.com.br)
            $mail->SMTPSecure = 'SSL';
            $mail->Port = 465;
            $mail->Username = 'USUARIO'; // Usuário do servidor SMTP (endereço de email)
            $mail->Password = 'SENHA'; // Senha do servidor SMTP (senha do email usado)
            // Define o remetente
            $mail->From = '[email protected]'; // Seu e-mail
            $mail->Sender = '[email protected]'; // Seu e-mail
            $mail->FromName = 'Nome do rementente'; // Seu nome
            // Define os destinatário(s) *** Se for mais que um destinatário ele irá separar e mandar para cada um.
            $string = $emails;
            $pieces = explode(',', $string);
            foreach($pieces as $element)
            {
              $mail->AddAddress($element);
            }
            // Define os dados técnicos da Mensagem
            // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
            $mail->IsHTML(true); // Define que o e-mail será enviado como HTML
            // Define a mensagem (Texto e Assunto)
            $mail->Subject  = utf8_decode($assunto); // Assunto da mensagem
            $mail->Body = $mensagem;
            $mail->AltBody = $mensagem.'\r\n';
            // Define os anexos (opcional)
            if (empty($_FILES['arquivo']['name'])) {
            } else {
            $mail->AddAttachment($anexoemail['tmp_name'], $anexoemail['name']);  // Insere um anexo
            }
            // 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) {
            echo "<img src='images/ok.png'/><font color='#32CD32'> E-mail enviado com sucesso!</font><br />";
            } else {
            echo "<img src='images/erro.png'/><font color='#FF0000'> Não foi possível enviar o e-mail. </font><br />";
            echo $mail->ErrorInfo;
            }
            ?>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.