SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 30.12.2009, 17:49:02
MC68060 MC68060 ist offline
Anfänger
 
Registriert seit: Dec 2009
Alter: 50
Beiträge: 3
Probleme mit HTML eMail-Versand über PHP

Moin,
ich hab' ein kleines Problem mit dem Versand von HTML-eMail über ein PHP-Script...
Die Mail kommt an, wird aber nicht angezeigt.
Im Quelltext der Mail ist aber alles enthalten.

Mein Script:
PHP-Code:
<?php

//turn off error reporting --easily commented out for development, but keeps site visitors from seeing any random thrown errors
error_reporting(0); 
// specify the recipients and subject
$to "foo@bar.de";
$subject "Neue email";
//grab all our vars from the form
extract($_POST);

 
    
//Let's start our headers
    
$headers "From:$EMail\r\n";
    
$headers .= "Reply-To:$EMail\r\n"
    
$headers .= "MIME-Version: 1.0\n";
    
$headers .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"----=MIME_BOUNDRY_main_message\"\n"
    
$headers .= "X-Sender:foo@bar.de\r\n";
    
$headers .= "X-Mailer: PHP5\n";
    
$headers .= "X-Priority: 3\n"//1 = Urgent, 3 = Normal
    
$headers .= "Return-Path:foo@bar.de\r\n"
    
$headers .= "This is a multi-part message in MIME format.\n";
    
$headers .= "------=MIME_BOUNDRY_main_message \n"
    
$headers .= "Content-Type: multipart/alternative; boundary=\"----=MIME_BOUNDRY_message_parts\"\n"
    
    
$message "------=MIME_BOUNDRY_message_parts\n";
    
$message .= "Content-Type: text/html; charset=\"utf-8\"\n"
    
$message .= "Content-Transfer-Encoding: quoted-printable\n"
    
$message .= "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n";

    
$message .= "<html><head><title>Toller Titel</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body style=\"margin:0 0 0 0px; padding:0; background-color: #ffffff; font-family:Arial;font-size: 12px;\"><table>\n"
    
   
$message .= "<tr><td>Marke: </td><td>".stripslashes($_POST['Marke'])."</td></tr>\n";

 
// Viele andere Formulardaten :) //

  
$message .= "<tr><td>Kontaktaufnahme: </td><td>".stripslashes($_POST['Kontaktaufnahme'])."</td></tr>\n";
  
$message .= "</table></body></html>\n"
  
$message .= "------=MIME_BOUNDRY_message_parts--\n"
  
$message .= "\n"
        
$message .= "\n";  
        
$message .= "------=MIME_BOUNDRY_message_parts--\n";  
        
$message .= "\n";  
/*deal with mulitple attachments */
        
foreach($_FILES as $file => $value) { 
            
$_tmpname $_FILES[$file]['tmp_name']; 
            
$_filename $_FILES[$file]['name']; 
            if (
is_uploaded_file($_tmpname)) { //Do we have a file uploaded? 
                
$fp fopen($_tmpname"rb"); //Open it 
                
$data fread($fpfilesize($_tmpname)); //Read it 
                
$data chunk_split(base64_encode($data)); //Chunk it up and encode it as base64 so it can emailed 
                
$message .= "------=MIME_BOUNDRY_main_message\n";  
                
$message .= "Content-Type: application/octet-stream;\n\tname=\"" $_filename "\"\n"
                
$message .= "Content-Transfer-Encoding: base64\n"
                
$message .= "Content-Disposition: attachment;\n\tfilename=\"" $_filename "\"\n\n"
                
$message .= $data//The base64 encoded message 
                
$message .= "\n\n"
                
fclose($fp); 
            } 
        } 
     
        
$message .= "------=MIME_BOUNDRY_main_message--\n";  
 

@
mail$to$subject$message$headers );

header("Location: http://www.meine-domain.de"); ?>
So sieht dann der Mail-Quelltext aus:

Code:
Received: (qmail 28982 invoked by uid 30); 30 Dec 2009 16:29:27 +0100
X-Mail-Scanner: Scanned by qSheff-II-2.1-r3 (http://www.enderunix.org/qsheff/)
Date: 30 Dec 2009 16:29:27 +0100
Message-ID: <20091230152927.28977.qmail@meinserver.de>
To: foo@bar.de
Subject: Neues Ankaufsangebot
From: phoenix@MeineDomain.de
Reply-To: phoenix@MeineDomain.de
MIME-Version: 1.0
Content-Type: multipart/related; type="multipart/alternative"; boundary="----=MIME_BOUNDRY_main_message"
X-Sender:foo@bar.de X-Mailer: PHP5
X-Priority: 3
X-Antivirus: avast! (VPS 091230-0, 30.12.2009), Inbound message
X-Antivirus-Status: Clean

This is a multi-part message in MIME format.
------=MIME_BOUNDRY_main_message 
Content-Type: multipart/alternative; boundary="----=MIME_BOUNDRY_message_parts"


------=MIME_BOUNDRY_message_parts
type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><title>Toller Titel</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="margin:0 0 0 0px; padding:0; background-color: #ffffff; font-family:Arial;font-size: 12px;"><table>
<tr><td>Marke: </td><td>Citroen</td></tr>

<tr><td>Kontaktaufnahme: </td><td>bitte senden Sie mir eine E-Mail</td></tr>
</table></body></html>
------=MIME_BOUNDRY_message_parts--


------=MIME_BOUNDRY_message_parts--

------=MIME_BOUNDRY_main_message
Content-Type: application/octet-stream;
	name="darkside3.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="meinbild1.jpg"

meinbild1-Base64-Daten...

------=MIME_BOUNDRY_main_message
Content-Type: application/octet-stream;
	name="nde.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="meinbild2.jpg"

meinbild2-Base64-Daten...

------=MIME_BOUNDRY_main_message--
Hat jemand eine Idee warum die Mail nicht angezeigt wird?


Gruß,
Thomas
Mit Zitat antworten
  #2  
Alt 30.12.2009, 18:07:24
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Probleme mit HTML eMail-Versand über PHP

das skript stammt nicht von dir selbst, oder? bitte schau dir unsere Forenregeln an; insbes. punkt c. darüber hinaus: mit dem manuellen / selbstgestrickten versenden von eMails ärgert sich heute i.a. niemand mehr herum. nutze besser eine lösung wie swiftmailer.

cx
Mit Zitat antworten
  #3  
Alt 30.12.2009, 18:18:10
MC68060 MC68060 ist offline
Anfänger
 
Registriert seit: Dec 2009
Alter: 50
Beiträge: 3
AW: Probleme mit HTML eMail-Versand über PHP

Das Script ist aus mehreren versch. Scripten zusammengebastelt und dann von mir überarbeitet worden.
Zudem stammt das aus sehr alten Forenbeiträgen.

Wenn ich den Content-Type auf Text/plain ändere, funktioniert es auch aber ich kann dann ja keine Tabelle verwenden.

Nur als HTML macht er nicht das, was ich will.

Fertige Scripte gibt es viele, da dauert das anpassen dann länger als neuschreiben.
Auserdem sind "Fertig-Scripte" langweilig... da lernt man ja nichts :)
Mit Zitat antworten
  #4  
Alt 30.12.2009, 18:28:42
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Probleme mit HTML eMail-Versand über PHP

Zitat:
Zitat von MC68060 Beitrag anzeigen
Nur als HTML macht er nicht das, was ich will.
HTML-mails sind immer problematisch.

Zitat:
Zitat von MC68060 Beitrag anzeigen
Fertige Scripte gibt es viele, da dauert das anpassen dann länger als neuschreiben.
1. schau dir swiftmailer genauer an - das ist mehr als ein fertiges skript.
2. bei einer komplexen mail-klasse wie swiftmailer gibt's i.d.r. keine notwendigkeit, etwas anzupassen.
3. ich glaube nicht, dass du das (aus dem handgelenk) hinbekommen würdest.

Zitat:
Zitat von MC68060 Beitrag anzeigen
Auserdem sind "Fertig-Scripte" langweilig
ich teile diese einstellung weitgehend. beim mail-versand sieht's allerdings anders aus. wenn du das selbst machen / lernen willst... viel spass dabei. bitte bemühe unsere forensuche - zu dem thema gab's bereits unmengen threads.

cx
Mit Zitat antworten
  #5  
Alt 30.12.2009, 19:25:34
MC68060 MC68060 ist offline
Anfänger
 
Registriert seit: Dec 2009
Alter: 50
Beiträge: 3
AW: Probleme mit HTML eMail-Versand über PHP

So, jetzt hab' ich's hinbekommen:
Der Content-Typ und der Boundary gehören in den Header der eMail... schon klappt das.

Falls jemand dieses Script verwenden möchte:

PHP-Code:
<?php

//turn off error reporting --easily commented out for development, but keeps site visitors from seeing any random thrown errors
error_reporting(0); 
// specify the recipients and subject
$to "foo@bar.de";
$subject "Neue email";
//grab all our vars from the form
extract($_POST);

 
    
//Let's start our headers
    
$headers "From:$EMail\r\n";
    
$headers .= "Reply-To:$EMail\r\n"
    
$headers .= "MIME-Version: 1.0\n";
    
$headers .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"----=MIME_BOUNDRY_main_message\"\n"
    
$headers .= "X-Sender:foo@bar.de\r\n";
    
$headers .= "X-Mailer: PHP5\n";
    
$headers .= "X-Priority: 3\n"//1 = Urgent, 3 = Normal
    
$headers .= "Return-Path:foo@bar.de\r\n"
    
$headers .= "This is a multi-part message in MIME format.\n"
    
$headers .= "------=MIME_BOUNDRY_main_message \n"
    
$headers .= "Content-Type: multipart/alternative; boundary=\"----=MIME_BOUNDRY_message_parts\"\n"
    
    
$headers .= "------=MIME_BOUNDRY_message_parts\n";
    
$headers .= "Content-Type: text/html charset: utf-8";
    
$message .="
    <html>
        <head>
        </head>
        <body>
            <table>
                <tr><td>Marke: </td><td>"
.stripslashes($_POST['Marke'])."</td></tr>


                              // Viele viele bunte Formular-Daten...


                <tr><td>Kontaktaufnahme: </td><td>"
.stripslashes($_POST['Kontaktaufnahme'])."</td></tr>
            </table>
        </body>
    </html>"
;
    
$message .= "\n";  
    
$headers .= "------=MIME_BOUNDRY_message_parts--\n";  
    
$message .= "\n";  
        
/*deal with mulitple attachments */
        
foreach($_FILES as $file => $value) { 
            
$_tmpname $_FILES[$file]['tmp_name']; 
            
$_filename $_FILES[$file]['name']; 
            if (
is_uploaded_file($_tmpname)) { //Do we have a file uploaded? 
                
$fp fopen($_tmpname"rb"); //Open it 
                
$data fread($fpfilesize($_tmpname)); //Read it 
                
$data chunk_split(base64_encode($data)); //Chunk it up and encode it as base64 so it can emailed 
                
$message .= "------=MIME_BOUNDRY_main_message\n";  
                
$message .= "Content-Type: application/octet-stream;\n\tname=\"" $_filename "\"\n"
                
$message .= "Content-Transfer-Encoding: base64\n"
                
$message .= "Content-Disposition: attachment;\n\tfilename=\"" $_filename "\"\n\n"
                
$message .= $data//The base64 encoded message 
                
$message .= "\n\n"
                
fclose($fp); 
            } 
        } 
     
    
$headers .= "------=MIME_BOUNDRY_main_message--\n";  
 
// send message to recipients
@mail$to$subject$message$headers );
// redirect to thank you page after sending email
header("Location: http://www.meinedomain.de"); ?>
Mit Zitat antworten
  #6  
Alt 30.12.2009, 19:31:23
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Probleme mit HTML eMail-Versand über PHP

ich würde wenigstens eine fehlerbehandlung einbauen, denn hiermit

Zitat:
Zitat von MC68060 Beitrag anzeigen
PHP-Code:
@mail( [...] ); 
hast du null erfolgskontrolle. gerade mail( ) ist höchst unzuverlässig...

cx
Mit Zitat antworten
Antwort

Stichworte
form, formular, html-email, php


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ins HTML includete PHP anpassen Camouflage PHP Grundlagen 1 16.01.2006 22:51:43
PHP Upload - Probleme mit großen Dateien nino PHP Grundlagen 3 08.12.2005 22:40:17
JSCode mit PHP gleichmässig im HTML Code verteilen Gagget PHP für Fortgeschrittene und Experten 4 14.11.2005 02:21:04
PHP wird in HTML Abschnitten/Dateien nicht erkannt Elderwolf PHP Grundlagen 6 09.04.2004 14:53:43
PHP in Html einbinden. Markus Steuerwa PHP für Fortgeschrittene und Experten 4 25.03.2002 12:59:18


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:16:48 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt