formulário com anexo
Pessoal,
Utilizando como base o código da Wiki da Locaweb, adaptei para utilizar em meu site o código abaixo.
Quando envio os dados recebo a mensagem de dados enviados com sucesso, porém não recebo o email.
Será que alguém consegue me ajudar a encontrar o erro? :( Estou ficando desesperada rsrs
Segue abaixo meu código PHP.
<?php
/ Medida preventiva para evitar que outros domínios sejam remetente da sua mensagem. /
if (eregi('tempsite.ws$|locaweb.com.br$|hospedagemdesites.ws$|websiteseguro.com$|publiccloud.com.br$', $_SERVER[HTTP_HOST])) {
$emailsender='alinemonteiro@networkpesquisa.com.br'; // Substitua essa linha pelo seu e-mail@seudominio
}
/ Verifica qual é o sistema operacional do servidor para ajustar o cabeçalho de forma correta. /
if(PATH_SEPARATOR == ";") $quebra_linha = "\r\n"; //Se for Windows
else $quebra_linha = "\n"; //Se "não for Windows"
// Passando os dados obtidos pelo formulário para as variáveis abaixo
$contactName = $_POST['contactName'];
$contactEmail = $_POST['contactEmail'];
$contactSubject = "Currículo";
$contactMessage = $_POST['contactMessage'];
$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);
$boundary = "XYZ-" . date("dmYis") . "-ZYX";
$mens = "--$boundary" . $quebra_linha . "";
$mens .= "Content-Transfer-Encoding: 8bits" . $quebra_linha . "";
$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"" . $quebra_linha . "" . $quebra_linha . ""; //plain
$mens .= "$mensagem" . $quebra_linha . "";
$mens .= "--$boundary" . $quebra_linha . "";
$mens .= "Content-Type: ".$arquivo["type"]."" . $quebra_linha . "";
$mens .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"" . $quebra_linha . "";
$mens .= "Content-Transfer-Encoding: base64" . $quebra_linha . "" . $quebra_linha . "";
$mens .= "$anexo" . $quebra_linha . "";
$mens .= "--$boundary--" . $quebra_linha . "";
/ Montando a mensagem a ser enviada no corpo do e-mail. /
$mensagemHTML = '<div style="font-family: Arial; font-size: 12px; color: #0e0c49;">
<P><i>Esta é uma mensagem enviada através do site da Network.</i></P> <hr>
<P><b>Nome do Remetente: </b></P>
<p style="padding-left: 20px; padding-right: 150px;">'.$contactName.'</p>
<P><b>E-mail: </b></P>
<p style="padding-left: 20px; padding-right: 150px;">'.$contactEmail.'</p>
<P><b>Assunto: </b></P>
<p style="padding-left: 20px; padding-right: 150px;">Currículo</p>
<P><b>Mensagem: </b></P>
<p style="padding-left: 20px; padding-right: 150px;">'.$contactMessage.'</p>
<hr></div>';
/ Montando o cabeçalho da mensagem /
$headers = "MIME-Version: 1.0" .$quebra_linha;
$headers .= "Content-type: text/html; charset=utf-8;" .$quebra_linha;// Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada.
$headers .= "From: " . $emailsender.$quebra_linha;
$headers .= "Reply-To: " . $contactEmail.$quebra_linha;// Note que o e-mail do remetente será usado no campo Reply-To (Responder Para)
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"" . $quebra_linha . "";
$headers .= "$boundary" . $quebra_linha . "";
/ Enviando a mensagem /
//É obrigatório o uso do parâmetro -r (concatenação do "From na linha de envio"), aqui na Locaweb:
if(!mail($emailsender, $contactSubject, $mens, $mensagemHTML, $headers ,"-r".$emailsender)){ // Se for Postfix
$headers .= "Return-Path: " . $emailsender . $quebra_linha; // Se "não for Postfix"
mail($emailsender, $contactSubject, $mens, $mensagemHTML, $headers );}
{
echo "<script>window.location.href='[http://www.networkpesquisa.com.br/msgenviada.html'](http://www.networkpesquisa.com.br/msgenviada.html)";
} }
//se nao tiver anexo
else {
/ Montando o cabeçalho da mensagem /
$headers = "MIME-Version: 1.0" .$quebra_linha;
$headers .= "Content-type: text/html; charset=utf-8;" .$quebra_linha;// Perceba que a linha acima contém "text/html", sem essa linha, a mensagem não chegará formatada.
$headers .= "From: " . $emailsender.$quebra_linha;
$headers .= "Reply-To: " . $contactEmail.$quebra_linha;// Note que o e-mail do remetente será usado no campo Reply-To (Responder Para)
/ Enviando a mensagem /
//É obrigatório o uso do parâmetro -r (concatenação do "From na linha de envio"), aqui na Locaweb:
if(!mail($emailsender, $contactSubject, $mensagemHTML, $headers ,"-r".$emailsender)){ // Se for Postfix
$headers .= "Return-Path: " . $emailsender . $quebra_linha; // Se "não for Postfix"
mail($emailsender, $contactSubject, $mensagemHTML, $headers );
}
{
echo "<script>window.location.href='[http://www.networkpesquisa.com.br/msgenviada.html'](http://www.networkpesquisa.com.br/msgenviada.html)";
}
}
?>E meu código HTML.
<!DOCTYPE html>
<!--[if lt IE 8 ]><html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 8)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
<head>
<!--- Basic Page Needs
================================================== -->
<meta charset="utf-8">
<title>Network Pesquisas de Mercado</title>
<meta name="description" content="">
<meta name="author" content="">
<!--- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-63303083-1', 'auto');
ga('send', 'pageview');
</script>
<!-- Mobile Specific Metas
================================================== -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<!-- CSS
================================================== -->
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/layout.css">
<style type="text/css">
.container {
background: #fff url(images/patterns/grey.png);
padding: 90px 0 102px 0;
color: #545454;
}
.section-head h2 { font: 30px/42px montserrat-bold, sans-serif; }
.desc { font: 14px/24px opensans-regular, sans-serif; }
</style>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Favicons
================================================== -->
<link rel="shortcut icon" href="favicon.ico">
</head>
<body data-spy="scroll" data-target="#nav-wrap">
<!-- Container
================================================== -->
<section class="container">
<div class="row add-bottom">
<br><h2>Envie seu currículo!</h2><br><br>
<body onLoad="document.email.nome.focus();">
<form onsubmit="return checa_formulario(this)" action="envia_anexo.php" method="post" enctype="multipart/form-data" name="email">
<label for="contactName">Nome</label>
<input name="contactName" type="text" id="contactName">
<label for="contactEmail">Email de contato</label>
<input name="contactEmail" type="text" class="contactEmail">
<label for="contactMessage">Mensagem</label>
<input name="contactMessage" type="text" class="contactMessage">
<label for="arquivo">Envie seu currículo <span style="font-color: #838383;">(de preferência em PDF)</span></label>
<input name="arquivo" type="file"></td>
<br><br><br>
<input type="submit" name="Submit" value="Enviar">
</form>
</body>
</div>
</section> <!-- Container End -->
</body>
</html>Discussão (2)
Carregando comentários...