Hallo Forummer
In meiner App kann ich Rechnungen mit fpdf erstellen welche ich auf wunsch per mail versende.
Das funktionier mit einer mailklasse ausgezeichnet.
Nun möchte ich nach dem Versand der rechnung per mail eine 2 mail an mich senden mit der Bestätigung, dass das mail versant wurde.
Leider kommt das 2 Mail an mich nicht an.
Sieht jemand einen offensichtlichen Fehler ?
Besten Dank für das durchsehen und wenn möglich eine Rückmeldung.
Versand:
die $info variablen zeigen die entsprechenden Emailadressen an die auch wirklich stimmen.
Mailklasse:
In meiner App kann ich Rechnungen mit fpdf erstellen welche ich auf wunsch per mail versende.
Das funktionier mit einer mailklasse ausgezeichnet.
Nun möchte ich nach dem Versand der rechnung per mail eine 2 mail an mich senden mit der Bestätigung, dass das mail versant wurde.
Leider kommt das 2 Mail an mich nicht an.
Sieht jemand einen offensichtlichen Fehler ?
Besten Dank für das durchsehen und wenn möglich eine Rückmeldung.
Versand:
Code:
//Dokument Mailen $pdf_mail = NEW my_mail(); $pdf_mail->set_object_pdf($pdf); $pdf_mail->set_to($mail); $pdf_mail->set_filename($my_ac_rech->get_cs_Rechnungsnummer().$my_ac_rech_Status.".pdf"); $info = "1 Mail geht an: ".$mail."\r\n"; $info .= $pdf_mail->send_mail()."\r\n\n"; //Bestätigung an eigene Mail senden //Mitteilung $home_message = $my_ac_rech_Status." mit Identivikation ".$my_ac_rech->get_cs_Rechnungsnummer(); $home_message .= "\r\n gesendet am ".$my_ac_info->getDatum("d.m.Y"); $home_message = wordwrap($home_message, 70, "\r\n"); $home_message = "<p>".$home_message."</p>"; //Mail $mail = $_SESSION['ts_fi_f'][0]['mail']; $pdf_mail_home = NEW my_mail(); $pdf_mail_home->set_object_pdf(); $pdf_mail_home->set_to($mail); $pdf_mail_home->set_subject("Mailbestätigung für ".$my_ac_rech->get_cs_Rechnungsnummer()); $pdf_mail_home->set_message($home_message); $pdf_mail_home->set_from("tsv_web@{$_SERVER['SERVER_NAME']}"); $info .= "2 Mail geht an: ".$mail; $info .= "\nBestaetigungsmail:"; $info .= "\n".$pdf_mail_home->send_mail();
Mailklasse:
Code:
<?php class my_mail { private $to; private $from = "meineMail@meineDomain.xx"; private $subject = "Sende email mit PDF Anhang"; private $message = "<p>Bitte beachten sie den Anhang.</p>"; private $filename = "rechnung.pdf"; private $mail_ok = "Mail wurde erfolgreich versandt an: "; private $mail_no = "FEHLER: Mail konnte wegen eines unbekannten Fehlers nicht versendet werden" ; private $mail_def = "FEHLER: E-Mail Adresse ungültig!"; private $mail_body_txt = "Dokumentenversand aus Timesave-web."; private $chkMail = true; private $info = ""; private $headers = ""; private $body = ""; private $attachment = ""; private $pdfdoc; private $separator; private $eol; //Constructor der Klasse function __construct() { $this->separator = md5(time()); $this->eol = PHP_EOL; } //Destructor der Klasse function __destruct() { } //pdf Object übergeben public function set_object_pdf($pdfObject = false) { if($pdfObject != false) { $this->pdf = $pdfObject; $this->pdfdoc = $this->pdf->Output("", "S"); $this->attachment = chunk_split(base64_encode($this->pdfdoc)); } } //Variablen abfüllen public function set_to($value) { $this->to = $value; } public function set_from($value) { $this->from = $value; } public function set_subject($value) { $this->subject = $value; } public function set_message($value) { $this->message = $value; } public function set_body_txt($value) { $this->mail_body_txt = $value; } public function set_filename($value) { $this->filename = $value; } public function send_mail() { $this->set_headers(); // send message if($this->test_mail_adr()=="") { $this->chkMail = mail($this->to, $this->subject, $this->body, $this->headers); } else{$this->info = $this->test_mail_adr();} $this->fkt_chkMail(); return $this->info; } //Fehlermeldungen Mailversand oder Mailadresse---------------------------------------- //Text wenn der E-Mailversand funktioniert hat. Supi public function set_mail_to($value) { $this->mail_ok = $value; } //Text wenn der E-Mailversand nicht funktioniert hat. Schei... public function set_mail_no($value) { $this->mail_no = $value; } //Text wenn die E-Mailadresse nicht stimmt oder unmöglich ist. Schei... public function set_mail_def($value) { $this->mail_def = $value; } //Mailadresse auf richtigkeit prüfen-------------------------------------------------- private function test_mail_adr() { if(!preg_match( '/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/' , $this->to)) { return $this->mail_def; } else{return "";} } //Info über das gelingen des Mailversands private function fkt_chkMail() { if($this->chkMail) { $this->info = $this->mail_ok.$this->to." von: ".$this->from; } else { $this->info = $this->mail_no; } return $this->info; } //informationen im Header abfüllen und mit Separator und Zeilenschaltungen versehen private function set_headers() { // main header $this->headers = "From: ".$this->from.$this->eol; $this->headers .= "MIME-Version: 1.0".$this->eol; $this->headers .= "Content-Type: multipart/mixed; boundary=\"".$this->separator."\""; // no more headers after this, we start the body! // $this->body = "--".$this->separator.$this->eol; $this->body .= "Content-Transfer-Encoding: 7bit".$this->eol.$this->eol; $this->body .= $this->mail_body_txt.$this->eol; // message $this->body .= "--".$this->separator.$this->eol; $this->body .= "Content-Type: text/html; charset=\"iso-8859-1\"".$this->eol; $this->body .= "Content-Transfer-Encoding: 8bit".$this->eol.$this->eol; $this->body .= $this->message.$this->eol; // attachment if($this->attachment!="") { $this->body .= "--".$this->separator.$this->eol; $this->body .= "Content-Type: application/octet-stream; name=\"".$this->filename."\"".$this->eol; $this->body .= "Content-Transfer-Encoding: base64".$this->eol; $this->body .= "Content-Disposition: attachment".$this->eol.$this->eol; $this->body .= $this->attachment.$this->eol; $this->body .= "--".$this->separator."--"; } } } ?>
Kommentar