Name this 'sendattachment.php'
<?
class sendmail
{
// Variable deklarieren
var $emailheader = "";
var $textheader = "";
var $textboundary = "";
var $emailboundary = "";
var $betreff = "";
var $empfaenger = "";
var $attachment = array();
function sendmail()
{
$this->textboundary = uniqid(time());
$this->emailboundary = uniqid(time());
}
// Von wem die Email kommt in den Header setzen
function from($name,$email)
{
$this->emailheader .= "From: \"Your Name\" <email@email.com>\n";
$this->emailheader .= "MIME-Version: 1.0\n";
}
// Funktion um den Adressaten anzugeben
function to($to)
{
$this->empfaenger = $to;
}
// Funktionn für den Betreff anzugeben
function subject($subject)
{
$this->betreff = $subject;
}
// Textdaten in Email Header packen
function text($text)
{
$this->textheader .= "Content-Type: multipart/alternative; boundary=\"$this->textboundary\"\n\n";
$this->textheader .= "--$this->textboundary\n";
$this->textheader .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n";
$this->textheader .= "Content-Transfer-Enconding: quoted-printable\n\n";
$this->textheader .= strip_tags($text)."\n\n";
$this->textheader .= "--$this->textboundary\n";
$this->textheader .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n";
$this->textheader .= "Content-Transfer-Enconding: quoted-printable\n\n";
$this->textheader .= "<html><body>$text</body></html>\n\n";
$this->textheader .= "--$this->textboundary--\n\n";
}
// Funktion zum anhängen für Attachments in der Email
function attachment($datei,$FileName)
{
// Überprüfen ob File Existiert
if(is_file($datei))
{
// Header für Attachment erzeugen
$attachment_header = "--".$this->emailboundary."\n" ;
$attachment_header .= "Content-Type: application/octet-stream;\n name=\"$FileName\"\n";
$attachment_header .= "Content-Transfer-Encoding: base64\n";
$attachment_header .= "Content-Disposition: attachment;\n filename=\"$FileName\"\n\n";
// Daten der Datei einlesen, in das BASE64 Format formatieren und auf max 72 Zeichen pro Zeile
// aufteilen
$file['inhalt'] = fread(fopen($datei,"rb"),filesize($datei));
$file['inhalt'] = base64_encode($file['inhalt']);
$file['inhalt'] = chunk_split($file['inhalt'],72);
// Attachment mit Header in der Klassenvariable speichern
$this->attachment[] = $attachment_header.$file['inhalt']."\n";
}
else
{
echo "Die Datei $datei existiert nicht...\n";
}
}
// Funktion zum erstellen des Kompletten Headers der Email
// Senden der Email
function send()
{
$header = $this->emailheader;
// Überprüfen ob Attachments angehängt wurden
if(count($this->attachment)>0)
{
$header .= "Content-Type: multipart/mixed; boundary=\"$this->emailboundary\"\n\n";
$header .= "--$this->emailboundary\n";
$header .= $this->textheader;
for($i=0;$i<count($this->attachment);$i++)
{
$header .= $this->attachment[$i];
}
$header .= "--$this->emailboundary--";
}
else
{
$header .= $this->textheader;
}
// Versenden der Mail
mail("$this->empfaenger",$this->betreff,"",$header);
}
}
?>
This Code is for the sending of the email with the attachment
include("/home/sites/$HTTP_HOST/web/_includes/sendattachment.php");
$mail = new sendmail();
$mail->from("");
$mail->to("email@email.com");
$mail->subject("Test 123");
$mail->text("Hi,<br><br>This report includes $teams.<br><br>To change your prefences, <a href=\"http://".$HTTP_HOST.".co.uk/profile.php\">Click Here</a>");
$mail->attachment("../pdf/blah.pdf", "YourFile.pdf");
$mail->send();
Hope this helps