Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu estou usando esse código:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Enviar e-mail com anexo</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="?acao=enviar" enctype="multipart/form-data">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td align="right">Nome:</td>
<td><input type="text" name="nome" id="nome" /></td>
</tr>
<tr>
<td align="right">Assunto:</td>
<td><input type="text" name="assunto" id="assunto" /></td>
</tr>
<tr>
<td align="right">Mensagem:</td>
<td><textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td align="right">Anexo:</td>
<td><input type="file" id="arquivo" name="arquivo" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Enviar" /></td>
</tr>
</table>
</form>
<?php
if($_GET['acao'] == 'enviar'){
$nome = $_POST['nome'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$arquivo = $_FILES["arquivo"];
$corpoMSG = "<strong>Nome:</strong> $nome<br> <strong>Mensagem:</strong> $mensagem";
// chamada da classe
require_once('class.phpmailer.php');
// instanciando a classe
$mail = new PHPMailer();
// email do remetente
$mail->SetFrom('remetente@dominio.com.br', 'remetente');
// email do destinatario
$address = "destinatario@dominio.com.br";
$mail->AddAddress($address, "destinatario");
// assunto da mensagem
$mail->Subject = $assunto;
// corpo da mensagem
$mail->MsgHTML($corpoMSG);
// anexar arquivo
$mail->AddAttachment($arquivo['tmp_name'], $arquivo['name'] );
if(!$mail->Send()) {
echo "Erro: " . $mail->ErrorInfo;
} else {
echo "Mensagem enviada com sucesso!";
}
}
?>
</body>
</html>
E estou recebendo o seguinte erro:
( ! ) Notice: Undefined index: acao in C:\wamp\www\EMAILL\email.php on line *33*
Call Stack
#
Time
Memory
Function
Location
1
0.0020
386856
{main}( )
...\email.php**:**0
Alguém poderia me ajudar por favor!Eu tentei mas o erro se mantém o mesmo. Não sei o que pode ser.
>
Em 06/09/2019 at 22:28, vinihhylian0103 disse:
Eu tentei mas o erro se mantém o mesmo. Não sei o que pode ser.
Amigo tente assim:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Enviar e-mail com anexo</title>
</head>
<body>
<!--Linha abaixo modificada - FORM-->
<form id="form1" name="form1" method="POST" action="" enctype="multipart/form-data">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td align="right">Nome:</td>
<td><input type="text" name="nome" id="nome" /></td>
</tr>
<tr>
<td align="right">Assunto:</td>
<td><input type="text" name="assunto" id="assunto" /></td>
</tr>
<tr>
<td align="right">Mensagem:</td>
<td><textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td align="right">Anexo:</td>
<td><input type="file" id="arquivo" name="arquivo" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<!--Linha abaixo modificada - BUTTON-->
<button type="submit" name="execut" id="execut" class="btn btn-primary" value="Enviar" >Enviar</button>
</td>
</tr>
</table>
</form>
<?phpif(isset($_POST['execut']) && $_POST['execut'] == 'Enviar'){
$nome = $_POST['nome'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$arquivo = $_FILES["arquivo"];
$corpoMSG = "<strong>Nome:</strong> $nome<br> <strong>Mensagem:</strong> $mensagem";
// chamada da classe
require_once('class.phpmailer.php');
// instanciando a classe
$mail = new PHPMailer();
// email do remetente
$mail->SetFrom('remetente@dominio.com.br', 'remetente');
// email do destinatario
$address = "destinatario@dominio.com.br";
$mail->AddAddress($address, "destinatario");
// assunto da mensagem
$mail->Subject = $assunto;
// corpo da mensagem
$mail->MsgHTML($corpoMSG);
// anexar arquivo
$mail->AddAttachment($arquivo['tmp_name'], $arquivo['name'] );
if(!$mail->Send()) {
echo "Erro: " . $mail->ErrorInfo;
} else {
echo "Mensagem enviada com sucesso!";
}
}
?>
</body>
</html>>
Em 06/09/2019 at 22:28, vinihhylian0103 disse:
Eu tentei mas o erro se mantém o mesmo. Não sei o que pode ser.
Você precisa de estudo. Está fazendo algo que não sabe nem o que é nem de onde vem.
Você precisa saber o que é GET o que é POST... como seu formulário está sendo enviado, como tratar os dados, etc.
o seu $_GET['acao'] está sendo enviado realmente, só faltou a verificação com o "isset". Se você trabalha com envio de arquivos via formulário para o servidor, é necessário dizer isso ao seu formulário com a marcação "
enctype="multipart/form-data"
Olá amigo, saudações...