Antworten auf deine Fragen:
Neues Thema erstellen

[PHP] Mail Inhalt formatieren

Ich habe die Suchfunktion schon benutzt und irgendwie war mir die Problembehandlung in dem passden Thread, den ich dazu fand, nicht so
hilfreich.

Wie man Titel entnehmen kann versuche ich den Inhalt einer Email zu formatieren. Der normale Textinhalt lässt sich ja nciht bearbeiten, aber für HTML-Inhalte. Und da besteht das Problem, dass der Inhalt nicht korrekt dargestellt wird.
Selbst wenn ich im <head> angebe, dass es sich um HTML-Code handelt und <br /> oder \n einfüge werden diese Zeichen normal dargestellt und nicht als HTML-Code interpretiert.

Und ja, das Email-Programm das ich versende versteht HTML.


Könnte es an einem anderen Problem liegen..?

PHP:
$mail = new Zend_Mail('UTF-8');
   $mail->setType(Zend_Mime::MULTIPART_RELATED);
   //$mail->setBodyText($body);
   $mail->setBodyHTML(nl2br(
   '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<p>Folgende Daten wurden versandt:</p>Anfrage:'.$form->getValue('anfrage').'
</body>
</html>'
   ));
   $mail->setFrom('website@zugpferd-werbung.de', 'Zugpferd-Webserver');
   $mail->addTo('wagner@zugpferd-werbung.de', 'Zugpferd');
   $mail->setSubject('Anfrage von der Website');

Der Body-Inhalt ist etwas gekürzt, aber im Endeffekt stehen da nur mehr Einträge, die abgefragt werden beim abschicken.
 

lachender_engel

Aktives Mitglied

AW:
PHP:
 Mail Inhalt formatieren[/b]

[quote="aliasltb, post: 1399609"]Und da besteht das Problem, dass der Inhalt nicht korrekt dargestellt  wird.[/quote]
Das kann viel bedeuten und sein.

Schau Dir bitte mal den Quelltext der E-Mail in Deinem Mailclient an.
Unabhängig davon solltest Du auch einen Plain-Text-Body mitschicken für die Mailclients, die nur Nur-Text-Nachrichten anzeigen.
 
AW:
PHP:
 Mail Inhalt formatieren[/b]

Den Plain-Text schicke ich schon mit.
 
Und den Quell-Code kann ich mir mit dem Client nicht anschauen. Zumindest habe ich schon gesucht wo man das nachschauen könnte, aber bisher habe ich keine Funktion gefunden.
 

lachender_engel

Aktives Mitglied

AW:
PHP:
 Mail Inhalt formatieren[/b]

[quote="aliasltb, post: 1399676"]Und den Quell-Code kann ich mir mit dem Client nicht anschauen. Zumindest habe ich schon gesucht wo man das nachschauen könnte, aber bisher habe ich keine Funktion gefunden.[/quote]

Bei Outlook und Outlook Express klickst mit der rechten Maustaste in die Nachricht und gehst auf Quelltext anzeigen.
 
AW:
PHP:
 Mail Inhalt formatieren[/b]

Ich benutze kein Outlook sondern David.InfoCenter.
Hab das auch nie benutzt und weiß nicht genau, wie ich dort meine Mails ablesen könnnte, da es sich um Firmenmails handelt.
 

lachender_engel

Aktives Mitglied

AW:
PHP:
 Mail Inhalt formatieren[/b]

Im David Client mit der rechten Maustaste auf den Eintrag im Posteingang, Eigenschaften, Parameter, Erweitert, und im Pulldown - rechts - auf HTML-Inhalt stellen.
 

lachender_engel

Aktives Mitglied

AW:
PHP:
 Mail Inhalt formatieren[/b]

[quote="aliasltb, post: 1399785"]Hm, da wird dann überhaupt kein Inhalt angezeigt. oO[/quote]

Also, wenn Du im Anzeigefenster das Pulldown auch wirklich auf HTML-Inhalt gestellt hast und es wird kein HTML-Text angezeigt, dann gibt es für den Mailclient keine HTML-E-Mail.
Das erklärt auch, warum die Tags, wie Du schreibst, im Klartext dargestellt werden. Denn der Client zeigt die Mail als Plain-Text an - erkennt also keinen HTML-Body.
 
AW:
PHP:
 Mail Inhalt formatieren[/b]

Hm, also liegt es doch daran, wie ich den Body-Text definiert habe. Muss dann mal suchen ob ich auch alles richtig angegeben habe, damit der Content-Type auch wirklich HTML ist. *grübel*
 
Oder liegt es doch woanders dran?
 
EDIT:
Hier ist nochmal mein aktueller Code:
 
[PHP]
$mail = new Zend_Mail('UTF-8');
   
   // Inhalt
   $mail->setSubject('Anfrage von der Website');
   $mail->setBodyText($body);
   $mail->setBodyHTML(
   '<html>
    <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>Unbenanntes Dokument</title>
    </head>
    
    <body>'.nl2br('
     <p>Folgende Daten wurden versandt:</p>
    Firma:'.$form->getValue('firma').'
    E-Mail:'.$form->getValue('email').'
    Anfrage:'.$form->getValue('anfrage')).'
   </body>
   </html>'
   );
   
   // An / Von
   $mail->setFrom('website@host.de', Host-Webserver');
   $mail->addTo('ich@host.de', Host);
 
Zuletzt bearbeitet:

lachender_engel

Aktives Mitglied

AW:
PHP:
 Mail Inhalt formatieren[/b]

Versuche es mal hiermit:

[url=http://www.phpguru.org/static/Rmail]www.phpguru.org: Rmail for PHP: How to send email with attachments and/or HTML (MIME) emails with PHP[/url]
 
AW:
PHP:
 Mail Inhalt formatieren[/b]

Wie aktuell ist denn das denn?
Dort sind nämlich Methoden, die bei mir Fehlermeldungen verursachen wie setText oder setHTML. Die müssten doch eigentlich setBodyHTML oder setBodyText heißen, oder irre ich mich?
 

lachender_engel

Aktives Mitglied

AW:
PHP:
 Mail Inhalt formatieren[/b]

Hier mal ganz einfach - das klappt:
[php]
<?php
$s_body = '
<html>
<head>
  <title>Der Titel</title>
</head>
<body>
  <p>bla bla</p>
</body>
</html>
';
$s_header  = 'MIME-Version: 1.0' . "\r\n";
$s_header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$s_header .= 'To: ich@domain.tld' . "\r\n";
$s_header .= 'From: absender@domain.tld' . "\r\n";
mail('ich@domain.tld', 'Hier steht der Betreff', $s_body, $s_header);
?>
 

netbandit

Aktives Mitglied

AW:
PHP:
 Mail Inhalt formatieren[/b]

Hallo aliasltb,
 
ich geb Dir hier mal ein Link, probier mal das Beispiel mit Deiner Emailaddi aus. Wenn es funktioniert, bau nach und nach Deine Inhalte mit ein.
 

 
UTF würde ich erst zum Ende hin machen, so wie ich das gelesen habe, müsste da auch noch ein wenig mehr angegeben werden. Hier aber schon mal ein paar Links dazu:

und

 
Grüße
 
AW:
PHP:
 Mail Inhalt formatieren[/b]

Danke für deine Hilfe, aber die Dokumentation habe ich schon meeehrmals durchgewälzt und kann sie nur bedingt weiterempfehlen..
 

M3g4Star

Nicht mehr ganz neu hier

AW:
PHP:
 Mail Inhalt formatieren[/b]

Also ich kann immer wieder nur den [URL="http://phpmailer.worxware.com/"]phpmailer[/URL] empfehlen. 
Einfach / ohne Fehler / gut dokumentiert / OpenSource. 

Ich würde allein aus Kompatibilitätsgründen nie auf die Idee kommen selbst den header etc. einer Mail zu gestalten und den mail() Befehl direkt zu nutzen da sich dort viel zu viele Fehler einschleichen können.

Die Zend_Mail kenn ich leider nicht. Aber wenn du die Dokumentation schlecht findest versuchs mit dem phpmailer. 

Gruß M3g4
 

M3g4Star

Nicht mehr ganz neu hier

AW:
PHP:
 Mail Inhalt formatieren[/b]

[quote="aliasltb, post: 1407209"]Naja ich soll es schon möglichst selbst schreiben. :)[/quote]

Warum das Rad neu erfinden. Dann steck deine Kreativität doch lieber in neue Skripte. ;)
 
AW:
PHP:
 Mail Inhalt formatieren[/b]

Weil ich es nunmal mit dem Zend Framework umsetzen soll.
 
Wenn dir ein Malermeister sagt du sollst die Wand mit einer großen Farbrolle streichen protestierst du ja auch nicht und streichst sie dann mit einem kleinen Pinsel. ;P
 
 
 
EDIT: Problem ist aber mittlerweile gelöst.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.615
Beiträge
1.538.352
Mitglieder
67.526
Neuestes Mitglied
Winfriedtesmer
Oben