Envio de anexo com Phpmailer
Boa noite, não se se alguém pode me ajudar em uma probleminha com o envio de e-mail com um anexo utilizando o phpmailer.
Estou conseguindo fazer o envio normal, só não consigo bloquear o tamanho do arquivo que a pessoa pode anexar e também bloquear para que só passa enviar imagens bloquear outros tipo de extensões.
Meu código que estou utilizando é:
<?php
if(strpos($_SERVER['HTTP_REFERER'],'xxx.com.br')) {
session_start();
// resgatando os dados passados pelo form
$assunto = "Supermercados - Trabalhe Conosco";
$nome=$_POST["nome"];
$email=$_POST["email"];
$arquivo = $_FILES["arquivo"];$data = date("d/m/y"); //hidden
$hora = date("H:i"); //hidden
$ip = $_SERVER['REMOTE_ADDR']; //hidden
$navegador = $_SERVER['HTTP_USER_AGENT']; //hidden
$tamanho = 512000;
$tipos = array('image/jpeg', 'image/pjpeg');
if(empty($nome)){
$Email = 'O Nome é Obrigatório';
}elseif(!is_uploaded_file($arquivo['tmp_name'])){
$Email = 'O Arquivo é Obrigatório';
}elseif($arquivo['size'] > $tamanho){
$Email = 'O limite do tamanho do arquivo é de 500KB';
}elseif(!in_array($arquivo['type'], $tipos)){
$Email = 'O tipo do arquivo permitido é apenas JPEG';
}else{
// chamada da classe phpmailer
require_once('mailer/class.phpmailer.php');
require_once('mailer/class.smtp.php');
// faço a chamada da classe
$Email = new PHPMailer();
$Email->IsSMTP(); // set mailer to use SMTP
$Email->SMTPAuth = true; // turn on SMTP authentication
$Email->Port = 587;
$Email->Host = "xxx";
$Email->Username = "xxx";
$Email->Password = "xxx";$Email->IsMail(); // ativa o envio de e-mails em HTML, se false, desativa.
$Email->Mailer = "smtp";
// na classe, há a opçao de idioma, setei como br
$Email->SetLanguage("br");
// esta chamada diz que o envio será feito através da funçao mail do php. Voce mudar para sendmail, qmail, etc
// se quiser utilizar o programa de email do seu unix/linux para enviar o email
//$Email->IsMail(); // ativa o envio de e-mails em HTML, se false, desativa.
$Email->IsHTML(true);
// email do remetente da mensagem
$Email->From = "site@xxx.com.br";
// nome do remetente do email
$Email->FromName = $nome;
// Endereço de destino do emaail, ou seja, pra onde voce quer que a mensagem do formulário vá?
$Email->AddAddress("xxx","Supermercados - Trabalhe Conosco");
// informando no email, o assunto da mensagem
$Email->Subject = $assunto;
// Define o texto da mensagem (aceita HTML)
$Email->Body .= "
<font face='Arial, Helvetica, sans-serif' size='2'>
<h2>Supermercados - Trabalhe Conosco</h2>
<br />
<b>Nome:</b> $nome<br><br>
<b>E-mail:</b> $email<br><br>
<b>Data:</b> $data <br /><br />
<b>Hora:</b> $hora <br /><br />
<b>Ip:</b> $ip<br /><br />
<b>Navegador:</b> $navegador
</font>";
//verifica se todos os campos estão preenchidos, se não estiverem, não envia o email
$Email->AddAttachment($arquivo['tmp_name'], $arquivo['name']);
if(!$Email->Send()) {
echo "<h2>A mensagem nao foi enviada. </h2><p><br>";
echo "Erro: " . $Email->ErrorInfo;
}else{
echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=xxx'>
";
}
}
}
?>Discussão (9)
Carregando comentários...