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