Boas,
A nível de direitos sobre o código, devo remeter-vos para o meu primeiro artigo desta rubrica.
Como tinha falado, cá está a função para enviar anexos num email, se necessário.
<?php
function sendEmail($name, $email, $to_mail, $subject, $msg, $attachment = “”) {
$sending = false;
if (!empty($attachment[‘tmp_name’]) && !empty($attachment[‘error’])) $attachment[‘tmp_name’] = “”;
if (!empty($name) && !empty($email) && !empty($to_mail) && !empty($subject) && !empty($msg)) {
$from_name = $name;
$from_mail = $email;
$sending = true;
}
if ($sending) {
$eol = “\n”;
$tosend[‘email’] = $to_mail;
$tosend[‘subject’] = $subject;
$tosend[‘message’] = ”
<!DOCTYPE html PUBLIC \”-//W3C//DTD XHTML 1.0 Transitional//EN\” \”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\”>
<html>
<head>
<meta http-equiv=\”Content-Type\” content=\”text/html; charset=utf-8\”>
<title>”.$subject.”</title>
</head>
<body>
“.$msg.”<br />
</body>
</html>
“.$eol.$eol;
$tosend[‘headers’] = “From: \””.$from_name.”\” <“.$from_mail.”>”.$eol;
$tosend[‘headers’] .= “Return-path: <“.$from_mail.”>”.$eol;
$tosend[‘headers’] .= “MIME-Version: 1.0”.$eol;
if (!empty($attachment[‘tmp_name’])) {
$file = $attachment[‘tmp_name’];
$content = file_get_contents($file);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$f_name = $attachment[‘name’];
$tosend[‘headers’] .= “Content-Type: multipart/mixed; boundary=\”PHP-mixed-“.$uid.”\””.$eol.$eol;
$tosend[‘headers’] .= “This is a multi-part message in MIME format.”.$eol;
$tosend[‘headers’] .= “–PHP-mixed-“.$uid.””.$eol;
$tosend[‘headers’] .= “Content-Type: multipart/alternative; boundary=\”PHP-alt-“.$uid.”\””.$eol.$eol;
$tosend[‘headers’] .= “–PHP-alt-“.$uid.””.$eol;
$tosend[‘headers’] .= “Content-type: text/html; charset=utf-8”.$eol;
$tosend[‘headers’] .= “Content-Transfer-Encoding: 7bit”.$eol.$eol;
$tosend[‘headers’] .= $tosend[‘message’].””.$eol.$eol;
$tosend[‘headers’] .= “–PHP-alt-“.$uid.”–“.$eol;
$tosend[‘headers’] .= “–PHP-mixed-“.$uid.””.$eol;
$tosend[‘headers’] .= “Content-Type: application/octet-stream; name=\””.$f_name.”\””.$eol; // use diff. types here
$tosend[‘headers’] .= “Content-Transfer-Encoding: base64”.$eol;
$tosend[‘headers’] .= “Content-Disposition: attachment; filename=\””.$f_name.”\””.$eol.$eol;
$tosend[‘headers’] .= $content.””.$eol.$eol;
$tosend[‘headers’] .= “–PHP-mixed-“.$uid.”–“;
$tosend[‘message’] = “”;//– The message is already in the headers.
}
if (mail($tosend[‘email’], $tosend[‘subject’], $tosend[‘message’] , $tosend[‘headers’]))
return true;
else
return false;
}//– if ($sending)
return false;
}
?>
Modo de utilização:
É bastante simples e intuitivo. Segue um exemplo com um ficheiro que acabo de submeter (não do servidor directamente):
<?php
$msg = ”
Olá, visita o <a href=”https://pplware.sapo.pt/”>https://pplware.sapo.pt/</a>!! É fantástico!!!
“;
if (sendEmail(“Nome Origem”, “email@origem.com”, “email@destino.com”, “Assunto”, $msg, $_FILES[‘ficheiro’])) {
echo “Email enviado”;
} else {
echo “Email não enviado”;
}
?>
Para qualquer dúvida ou sugestão, estão completamente à vontade.