0
I am creating a system for sending resume, is working properly, but the attachment does not arrive.
PHP:
<?php
$nome = strip_tags(trim($_POST['nome']));
$email = strip_tags(trim($_POST['email']));
$assunto = strip_tags(trim($_POST['assunto']));
$mensagem = strip_tags(trim($_POST['mensagem']));
$arquivo = $_FILES['arquivo'];
$tamanho = 512000;
$tipos = ['image/JPEG', 'image/pjpeg'];
if (empty($nome)) {
$msg = 'O nome é Obrigatório';
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$msg = 'Digite um email Válido';
} elseif (empty($assunto)) {
$msg = 'Digite um Assunto';
} elseif (empty($mensagem)) {
$msg = 'a Mensagem é Obrigatoria';
} elseif (! is_uploaded_file($arquivo['tmp_name'])) {
$msg = 'o arquivo é obrigatório';
} elseif ($arquivo['size'] > $tamanho) {
$msg ='o tamanho do arquivo é inválido';
} elseif (in_array($arquivo['type'], $tipos)) {
$msg = 'O formato de arquivo é inválido';
} else {
include("phpmailer\src\class.phpmailer.php");
require 'phpmailer\src\PHPMailerAutoload.php';
$mail = new PHPMailer ();
$mail->SMTPDebug = 2;
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Port = 587;
$mail->Host = 'smtp.gmail.com';
$mail->Username = '[email protected]';
$mail->Password = '*******';
$mail->SetFrom('[email protected]', 'Samuel');
$mail->AddAddress('[email protected]', 'Samuel');
$mail->Subject = $assunto;
$body = "<strong>Nome :</strong>$nome<br>
<strong>E-mail :</strong>$email<br>
<strong>Assunto :</strong>$assunto<br>
<strong>Mensagem :</strong>$mensagem<br>
<strong>Currículo :</strong>$arquivo<br>";
$mail->MsgHTML($body);
$mail->AddAttachment($arquivo['mtp_name'], $arquivo['name']);
if($mail->Send())
$msg = "Sua Mensagem foi enviada com Sucesso!!!";
else
$msg = "Sua Mensagem Não foi enviada, tente novamente";
}
HTML:
<?php
if (isset($_POST['acao']) && $_POST['acao'] == 'enviar') {
require('envia.php');
}
?><!DOCTYPE html>
<html>
<head>
<style>
p#msg {
width: 300px;
margin:0 auto;
padding:5px 0;
text-align:center;
color: #F00;
font-weight:bold;
}
span {
color: black;
}
</style>
</head>
<body>
<?php
if(isset($msg))
echo "<p id=\"msg\">$msg</p>";
?>
<br><br>
<form action="" method="post" enctype="multipart/form-data" align="center">
<fieldset>
<legend> Formulário de Contato </legend>
<label>
<span>Nome</span>
<input type="text" name="nome">
</label>
<br><br>
<label>
<span>E-mail</span>
<input type="text" name="email">
</label>
<br><br>
<label>
<span>Assunto</span>
<input type="text" name="assunto">
</label>
<br><br>
<label>
<span>Mensagem</span>
<br>
<textarea rows="10" cols="30" name="mensagem"> </textarea>
</label>
<br><br>
<input type="file" name="arquivo">
<br><br>
<input type="hidden" name="acao" value="enviar">
<input type="submit" value="enviar">
</fieldset>
</form>
</body>
</html>
The correct is
$arquivo['tmp_name']
instead of$arquivo['mtp_name']
.– Valdeir Psr
great, really had an error there, could you tell me how do I redirect the person to a thank you page?
– Samuel Nicolau
@Samuelnicolau If an answer did not answer your question, there is no reason to accept it. The correct thing is to wait for an answer, or even answer it so that everyone can see/simulate the problem.
– rbz