I am trying to implement a candidature submission to my website, using the website as example, but it seems to corrupt the attached files and doesn't post the message in the email. not quite sure what's happening though, once i'm new to php.
https://codeconia.com/2021/05/28/html-form-to-email-with-attachment-using-php/
<?php
if(isset($_POST['submit'])){
$filenameee = $_FILES['file']['name'];
$fileName = $_FILES['file']['tmp_name'];
$name = $_POST['name'];
$email = $_POST['email'];
$usermessage = $_POST['message'];
$message ="Recebeu uma candidatura de ". $name . " com a seguinte mensagem:\r\n" . $usermessage;
$subject ='=?UTF-8?B?' . base64_encode("Candidatura de ".$name).'?=';
$fromname ='=?UTF-8?B?' . base64_encode($_POST['name']).'?=';
$fromemail = $_POST['email']; //if u dont have an email create one on your cpanel
$mailto = 'goncalo.leandro@ignitiondimension.pt'; //the email which u want to recv this email
$content = file_get_contents($fileName);
$content = chunk_split(base64_encode($content));
$separator = md5(time());
$eol = "\r\n";
$headers = 'Content-Type: text/plain; charset=utf-8' . "\r\nFrom: ".$fromname." <".$fromemail.">" . $eol;
$headers .= "MIME-Version: 1.0" . $eol;
$headers .= "Content-Type: multipart/mixed; boundary=\"" . $separator . "\"" . $eol;
$headers .= "Content-Transfer-Encoding: 7bit" . $eol;
$headers .= "This is a MIME encoded message." . $eol;
// message
$body = "--" . $separator . $eol;
$body .= "Content-Type: text/plain; charset=\"iso-8859-1\"" . $eol;
$body .= "Content-Transfer-Encoding: 8bit" . $eol;
$body .= $message . $eol;
// attachment
$body .= "--" . $separator . $eol;
$body .= "Content-Type: application/octet-stream; name=\"" . $filenameee . "\"" . $eol;
$body .= "Content-Transfer-Encoding: base64" . $eol;
$body .= "Content-Disposition: attachment" . $eol;
$body .= $content . $eol;
$body .= "--" . $separator . "--";
//SEND Mail
if (mail($mailto, $subject, $body, $headers)) {
echo "Candidatura enviada com sucesso. A reencaminhar para a pƔgina incial"; // do what you want after sending the email
header( "refresh:5;url=testMain.html" );
} else {
echo "Candidatura nĆ£o enviada.";
print_r( error_get_last() );
}
}
<body>
<form action="candidatura.php" class="needs-validation" method="POST" enctype="multipart/form-data" novalidate>
<div class="form-group">
<label for="name">Nome</label>
<input type="text" class="form-control" name="name" id="name" placeholder="Nome e Apelido" required>
<div class="invalid-feedback">Por favor insira o seu nome.</div>
</div>
<div class="form-group">
<label for="inputEmail">Email</label>
<input type="text" class="form-control" name="email" id="email" placeholder="Email" required>
<div class="invalid-feedback">Por favor insira um email vƔlido.</div>
</div>
<div class="form-group">
<label for="inputNumber">NĆŗmero de Telefone</label>
<input type="text" class="form-control" name="number" id="number" placeholder="NĆŗmero de telefone" required>
<div class="invalid-feedback">Por favor insira um nĆŗmero vĆ”lido.</div>
</div>
<div class="form-group">
<label for="inputMessage">Mensagem</label>
<textarea class="form-control" id="message" name="message" placeholder="Mensagem..."></textarea>
</div>
<div class="form-group">
<label for="inputFile">CV</label><br>
<input type="file" id="inputFile" name="file" placeholder="Anexe o seu CV" required>
<div class="invalid-feedback">Por favor insira um ficheiro vƔlido.</div>
</div>
<br>
<br>
<div class="form-group">
<label class="form-check-label"><input type="checkbox" placeholder="box" required> NĆ£o sou um robot.</label>
</div>
<button type="submit" name="submit" class="btn btn-primary">Submeter</button>
</form>
</body>
source https://stackoverflow.com/questions/69003421/cant-send-email-with-attachment-and-content
Comments
Post a Comment