# E-Mail mit Anhang verschicken

**URL:** <https://forum.shopware.com/t/e-mail-mit-anhang-verschicken/48139>\
**Category:** Programmierung\
**Created:** [8. September 2017 um 10:26 UTC](https://forum.shopware.com/t/e-mail-mit-anhang-verschicken/48139 "2017-09-08T10:26:06Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jim42](https://avatars.discourse-cdn.com/v4/letter/j/97f17d/32.png) [@jim42](https://forum.shopware.com/u/jim42)\
**Post date:** [8. September 2017 um 10:26 UTC](https://forum.shopware.com/t/e-mail-mit-anhang-verschicken/48139/1 "2017-09-08T10:26:06Z")

</div>

Guten Tag,

ich bin gerade dabei ein Plugin zu schreiben, das eine PDF-Datei per Mail an den Kunden schickt.

Die Mail geht auch raus, allerdings funktioniert das hinzufügen der PDF nicht.&nbsp;

Es wäre klasse, wenn mir jemand ein Beispiel geben könnte, wie man in Shopware eine Mail mit Anhang verschickt.

Ich habe schon in der Doku und im Forum geguckt & nichts gefunden (bzw. nicht verstanden)&nbsp;

Mein bisheriger Code(Ausschnitt):

$content =&nbsp;file\_get\_contents(“pfad/zur/datei.pdf”);

$mail = Shopware()-\>Mail();

$mail-\>IsHTML(0);

$mail-\>From = Shopware()-\>Config()-\>Mail;

$mail-\>FromName = Shopware()-\>Config()-\>Mail;

$mail-\>Subject = ‘Test’;

$mail-\>Body = ‘Test-Text’;

$mail-\>ClearAddresses();

$mail-\>AddAddress(‘mail@mail.de’, ‘Mail’);

$mail-\>AddAttachment($content);

$mail-\>Send();

&nbsp;

Ich bin mir ziemlich sicher, dass bei AddAttachment einfach was fehlt, weiß aber nicht was.

Vielen Dank schon mal für die Hilfe!

&nbsp;

Beste Grüße

Jim

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [8. September 2017 um 12:49 UTC](https://forum.shopware.com/t/e-mail-mit-anhang-verschicken/48139/2 "2017-09-08T12:49:10Z")

</div>

Die Methode addAttachment erwartet keinen String sondern ein Objekt vom Typ Zend\_Mime\_Part

```
public function addAttachment(Zend_Mime_Part $attachment)

```

Das kannst du einfach einfach aus einem String erzeugen:

```
    /**
     * create a new Mime Part.
     * The (unencoded) content of the Part as passed
     * as a string or stream
     *
     * @param mixed $content String or Stream containing the content
     */
    public function __construct($content)
    {
        $this->_content = $content;
        if (is_resource($content)) {
            $this->_isStream = true;
        }
    }

```

Wäre dann also:

```
$mail->AddAttachment(new \Zend_Mime_Part($content));

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![jim42](https://avatars.discourse-cdn.com/v4/letter/j/97f17d/32.png) [@jim42](https://forum.shopware.com/u/jim42)\
**Post date:** [11. September 2017 um 06:38 UTC](https://forum.shopware.com/t/e-mail-mit-anhang-verschicken/48139/3 "2017-09-11T06:38:23Z")

</div>

Guten Abend,

erstmal danke, das hat mich schon mal einen ganzen Schritt weiter gebracht!

Die Mail + Anhang geht jetzt raus, allerdings ist der Anhang eine Binär-Datei, statt einer PDF oder Text-Datei. (ATT00001.bin)

Deshalb habe ich folgendes probiert:

$attachment = new \Zend\_Mime\_Part($content);

$attachment-\>type = ‘application/pdf’;

$attachment-\>disposition = Zend\_Mime::DISPOSITION\_ATTACHMENT;

$attachment-\>encoding = Zend\_Mime::ENCODING\_BASE64;

$attachment-\>filename = ‘test.txt’;

$mail-\>AddAttachment($attachment);

Da kriege ich aber eine Fehlermeldung, dass er die Klasse nicht finden konnte.

"Uncaught Error: Class ‘SwagSloganOfTheDay\Zend\_Mime’ not found in… "

Offenbar kann ich da nur in AddAttachment drauf zugreifen.

Wie mache ich das jetzt?

&nbsp;

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [11. September 2017 um 12:59 UTC](https://forum.shopware.com/t/e-mail-mit-anhang-verschicken/48139/4 "2017-09-11T12:59:56Z")

</div>

Er sucht die Klasse&nbsp;Zend\_Mime im Namespace deines Plugins&nbsp;SwagSloganOfTheDay, da Zend\_Mine kein&nbsp;FQCN ist. Versuch es mal mit einem Slash davor:&nbsp;\Zend\_Mime

---

<div class="post-metadata">

**Author:** ![jim42](https://avatars.discourse-cdn.com/v4/letter/j/97f17d/32.png) [@jim42](https://forum.shopware.com/u/jim42)\
**Post date:** [11. September 2017 um 13:27 UTC](https://forum.shopware.com/t/e-mail-mit-anhang-verschicken/48139/5 "2017-09-11T13:27:45Z")

</div>

Jup, da hätte ich auch selbst drauf kommen können… Vielen vielen Dank!

Falls es wen interessiert:

$content = file\_get\_contents(“pfad/zur/datei.pdf”);

$mail = Shopware()-\>Mail();

$mail-\>IsHTML(0);

$mail-\>From = Shopware()-\>Config()-\>Mail;

$mail-\>FromName = Shopware()-\>Config()-\>Mail;

$mail-\>Subject = ‘Test’;

$mail-\>Body = ‘Text’;

$mail-\>ClearAddresses();

$mail-\>AddAddress($uUserMail, ‘’);

$attachment = new \Zend\_Mime\_Part($content);

$attachment-\>type = ‘application/pdf’;

$attachment-\>disposition = \Zend\_Mime::DISPOSITION\_ATTACHMENT;

$attachment-\>encoding = \Zend\_Mime::ENCODING\_BASE64;

$attachment-\>filename = $filename;

$mail-\>AddAttachment($attachment);

$mail-\>send();

So funktionierts.&nbsp;
