Zum Inhalt springen

Html-Mail mit Anhang verschicken

Erstellt am 16. April 2012 · 7 Antworten · letzte Antwort am 3. September 2012

Tags: Frage

Philipp88 ·

Hi,
ich versuche in meine Extension mit Typo3-Html-Mail eine Email mit Anhang zu senden.
Leider wird der Anhang nicht mitgeschickt.
Könnt Ihr mir helfen.

$this->htmlMail = t3lib_div::makeInstance('t3lib_htmlmail');
      $this->htmlMail->start();
      $this->htmlMail->recipient = $email_a;
      $this->htmlMail->subject = "Buchungsbestätigung";
      $this->htmlMail->from_email = $email_a;
      $this->htmlMail->from_name = "Ballonfahrten Goehler";
      $this->htmlMail->addAttachment("fileadmin/test.txt");
      $this->htmlMail->returnPath = $this->conf['FromEmail'];
      $this->htmlMail->setHTML($this->htmlMail->encodeMsg($html_start.$einleitung.$message.$html_end));
      $this->htmlMail->send($this->conf['infomail']);

Danke im Voraus!

Philipp88

Philipp88 ·

ich hab ja addAttachment($file) doch leider wird dieses $file in der Mail nicht angejangen🙁Aber wenn du sagst das Html- Mail rausgeschmissen wird, liese ich mich da doch mal ein. Hast du ein Beispiel Skript das mittels Typo3 eingebunden wird?

Philipp88 ·

Ich versuche gerade die Swiftmailer-Extension in meiner Extension einzubauen.
Der Code dazu lautet:

      $this->swiftmail = t3lib_div::makeInstance('t3lib_mail_Message');
      $this->swiftmail->setSubject("Neue Buchung");
      $this->swiftmail->setFrom(array($mail => ""));
      $this->htmlMail->setTo(array($mail => "Buchungsformular"));
      $this->swiftmail->setBody($html_start.$einleitung.$message.$html_end);
      $this->swiftmail->send();

Leider bekomme ich folgende Fehlermeldung von PHP zurückgeliefert:
Fatal error: Call to a member function setTo() on a non-object

Könnt Ihr mir helfen?

Danke

mothersh1p ·

Hallo P.

hier mein Code für Swiftmailer in TYPO3 (das funktioniert auch sehr gut). Mit der alten Klasse hatte ich auf meinem Server ziemliche Probleme. In $replyemail ist die E-Mail drin und in $replyname ist der E-Mail-Name drin. Du musst Dir nur die Dokumentation vom Swiftmailer durchlesen. Die T3 Klasse t3lib_mail_message ist nur eine Wrapper-Klasse. Das PHP-Objekt wird einfach durchgereicht und es stehen somit alle oder viele Funktionen von swiftmailer zur Verfügung. So funktioniert das auch mit den Dateianhang dafür muß nämlich zunächst die swiftmail Klasse attachment geladen werden, die sich aber in einer anderen Datei befindet. Dann wird die Methode from_path aufgerufen. Das steht in der Zeile Swift_Attachment::fromPath($filename) drin. In $filename steht der relative PFad zu der PDF Datei. Also meißtens htdocs und dann uploads oder fileadmin.

$mail = t3lib_div::makeInstance('t3lib_mail_message');
$mail->setFrom(array($replyemail => $replyname));
$mail->setTo(array($replyemail => $replyname));
$mail->setSubject('Text');
$mail->setBody('Text');
$mail->addPart('Text');
					
foreach ($pdf as $k => $filename)
{
   if (file_get_contents($filename))
   {
       $mail->attach(Swift_Attachment::fromPath($filename));
   }	
}
$mail->send();

PS. Das MM_FORUM mag keine doublequoutes!?