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 ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken 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 für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 06.04.2008, 02:31:30
Nightstalker Nightstalker ist offline
Anfänger
 
Registriert seit: Jul 2007
Beiträge: 24
HTML funktioniert nicht in E-Mail

Moin,

ich hab ein kleines Problem. Und zwar hab ich ein kleines Bewerbungsscript gebastelt und dieses will nicht so ganz wie ich. Ich will das es eine HTML E-Mail verschickt, die Mail kommt auch an, sieht aber so aus:

Zitat:
Message-Id: <xxxxxxxxxxxxxx.xxxxxxxxxx@xxxxxxx.xxxxxxx.xxx>
Date: Sun, 6 Apr 2008 00:58:54 +0200 (CEST)



<html>
<head>
<title>Bewerbung bei Arbeitsgemeinschaft Scene</title>
</head>
<body>
Sie haben soeben eine neue Bewerbung für die Aufnahme ins Netzwerk erhalten. Hier sind die Daten:<br /><br />
Nick: sdfsdfs<br /><br />
EMail: fsdfsdfsdf<br /><br />
Die Bewerbung: dfsdfsdfsd<br /><br />
</body>
</html>
Der PHP Code ist folgender:

http://nopaste.de/p/asp5d15gd

Kann mir jemand sagen, warum ich immer nur ne unformatierte E-Mail bekomme??

Gruß Nightstalker
Mit Zitat antworten
  #2  
Alt 06.04.2008, 09:07:38
Benutzerbild von Area51
Area51 Area51 ist offline
Junior Member
 
Registriert seit: Mar 2008
Ort: Heidelberg
Alter: 32
Beiträge: 164
Area51 eine Nachricht über ICQ schicken Area51 eine Nachricht über AIM schicken Area51 eine Nachricht über MSN schicken
AW: HTML funktioniert nicht in E-Mail

Lädst du die Mails mit einem Mailprogramm herunter? Ist HTML aktiviert?
Mit Zitat antworten
  #3  
Alt 06.04.2008, 11:34:54
Nightstalker Nightstalker ist offline
Anfänger
 
Registriert seit: Jul 2007
Beiträge: 24
AW: HTML funktioniert nicht in E-Mail

Hi,

ich lade die E-Mails mit Mozilla Thunderbird herunter und bisher hab ich dort immer HTML Mails erhalten.

Übrigends. Fals hilfreich, hier der Link zur PHPInfo:

http://test2.secure-root.com/info.php

Gruß
Nightstalker

Geändert von Nightstalker (06.04.2008 um 11:35:17 Uhr)
Mit Zitat antworten
  #4  
Alt 06.04.2008, 14:47:12
Benutzerbild von Area51
Area51 Area51 ist offline
Junior Member
 
Registriert seit: Mar 2008
Ort: Heidelberg
Alter: 32
Beiträge: 164
Area51 eine Nachricht über ICQ schicken Area51 eine Nachricht über AIM schicken Area51 eine Nachricht über MSN schicken
AW: HTML funktioniert nicht in E-Mail

Ich hab mal ne eMailer-Klasse geschrieben.
Die sollte eigentlich funktionieren...

PHP-Code:
<?php
    
/**
     * File: mail.class.php
     *
     * Send mails inform about new entries to admin
     *
     *
     * @author Andreas Fernandez (Area51)
     * @version 1.0.0
     * @since 30.01.2008 17:30:15
     * @copyright (c) 2008 www.scripting-base.de
     *
     * @license http://opensource.org/licenses/gpl-license.php GNU Public License
     */

    /**
     * Class extended from class "Exception" to display own messages
     */
    
class MailException extends Exception
    
{
    }

    
/**
     * Main class sending mails to admin
     */
    
class SendHTMLMail
    
{
        
/**
         * Get Mime-Type of attachments
         *
         * @return array;
         */
        
private function getMime ($filename)
        {
            
// Available Mines which could be sent
            
$types = array (
                
'.txt'    => 'text/txt',
                
'.log'    => 'text/log'
            
);

            
$filename basename ($filename);
            
$ext            strtolower (substr ($filenamestrrpos ($filename'.') ) );

            return 
$types[$ext];
        }

        
/**
         * Send mail to admin
         */
        
public function sendMail ($to$from$headers$subject$message$attachments '')
        {
            
$bound        uniqid (time ().'_');
            
$header        'From: '.$from."\r\n";
            
$content    '';

            foreach (
$headers as $head => $value)
            {
                
$header .= $head.': '.$value."\r\n";
            }

            
// Is $attachments an array?
            
if (is_array ($attachments) )
            {
                
$header        .= 'MIME-Version: 1.0'."\r\n";
                
$header        .= 'Content-Type: multipart/mixed; boundary = "'.$bound.'"'."\r\n";

                
$content    .= '--'.$bound."\r\n";
                
$content    .= 'Content-Type: text/html; charset="UTF-8"'."\r\n";
                
$content    .= 'Content-Transfer-Encoding: 8bit'."\r\n\r\n".$message."\r\n\r\n";

                
// Get every attachment
                
foreach ($attachments as $attach)
                {
                    if (
$handle fopen ($attach'rb') )
                    {
                        
$bn    basename ($attach);

                        
$content    .= '--'.$bound."\r\n";
                        
$content    .= 'Content-Type: '.$this -> getMime ($attach).'; name="'.$bn.'"'."\r\n";
                        
$content    .= 'Content-Transfer-Encoding: base64'."\r\n";
                        
$content    .= 'Content-Disposition: inline; filename="'.$bn.'"'."\r\n\r\n";
                        
$content    .= chunk_split (base64_encode (fread ($handlefilesize ($attach) ) ) )."\r\n";
                        
$content    .= fclose ($handle);
                    }
                    else
                    {
                        
// Can't open $attach
                        
throw new MailException ('Can\' open attachment '.$attach);
                    }
                }

                
$content    .= '--'.$bound.'--'."\r\n";
            }
            else
            {
                
$content    .= 'Content-Type text/html; charset="UTF-8"'."\r\n";
                
$content    .= 'Content-Transfer-Encoding: 8bit'."\r\n\r\n".$message."\r\n\r\n";
            }

            
// Possible track_errors is disabled - so enable it
            
if ( (ini_get ('track_errors') ) == || FALSE)
            {
                
ini_set ('track_errors'1);
            }

            if (!@
mail ($to$subject$content$header) )
            {
                
// Can't send mail to admin - throw
                // mail() [function.mail]: Failed to connect to mailserver at "SERVER" port PORT, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
                
throw new MailException ($php_errormsg);
            }
        }
    }

    
$sendMail    = new SendHTMLMail ();
    
$headers    = array (
        
'X-Mailer:' => 'PHP '.phpversion ()
    );
    
    
// Configuration
    
$to                strip_tags($_POST['email']);
    
$from            'myadress@example.com';
    
$subject    strip_tags($_POST['subject']);
    
$message    strip_tags($_POST['message']);

    try
    {
        
$sendMail -> sendMail ($to$from$headers$subject$message$attachment);
    }
    catch (
MailException $ex)
    {
        echo 
$ex -> getMessage ();
        exit;
    }
?>
Mit Zitat antworten
  #5  
Alt 06.04.2008, 16:54:32
Nightstalker Nightstalker ist offline
Anfänger
 
Registriert seit: Jul 2007
Beiträge: 24
AW: HTML funktioniert nicht in E-Mail

mit Klassen hab ich noch nicht gearbeitet. Wo muss ich die einsetzen??
Mit Zitat antworten
  #6  
Alt 06.04.2008, 18:10:11
Benutzerbild von Area51
Area51 Area51 ist offline
Junior Member
 
Registriert seit: Mar 2008
Ort: Heidelberg
Alter: 32
Beiträge: 164
Area51 eine Nachricht über ICQ schicken Area51 eine Nachricht über AIM schicken Area51 eine Nachricht über MSN schicken
AW: HTML funktioniert nicht in E-Mail

Du musst lediglich die Datei nach der Verarbeitung der Daten einbinden.
Aber vorher solltest du die Variablen
PHP-Code:
    $to                strip_tags($_POST['email']);
    
$from            'myadress@example.com';
    
$subject    strip_tags($_POST['subject']);
    
$message    strip_tags($_POST['message']); 
bearbeiten
Mit Zitat antworten
  #7  
Alt 06.04.2008, 21:50:04
Nightstalker Nightstalker ist offline
Anfänger
 
Registriert seit: Jul 2007
Beiträge: 24
AW: HTML funktioniert nicht in E-Mail

So. ich habs jetzt mal ausprobiert und es hat sich leider nix verändert. Es ist sogar noch schlimmer geworden. Folgende Mail hab ich bekommen:

Zitat:
X-Mailer:: PHP 5.2.0-8+etch7

Message-Id: <20080xxxxx2022.0ACxxxx08D@ksxxx64.kxxxufi.xxx>
Date: Sun, 6 Apr 2008 20:20:22 +0200 (CEST)


Content-Type text/html; charset="UTF-8"

Content-Transfer-Encoding: 8bit




<html>
<head>
<title>Bewerbung bei Arbeitsgemeinschaft Scene</title>
</head>
<body>
Sie haben soeben eine neue Bewerbung für die Aufnahme ins Netzwerk erhalten. Hier sind die Daten:<br /><br />
Nick: dsfsd<br /><br />
EMail: sdfsdfsdf<br /><br />
Die Bewerbung: sdfsdfsdf<br /><br />
</body>
</html>
Mit Zitat antworten
  #8  
Alt 06.04.2008, 21:57:24
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: HTML funktioniert nicht in E-Mail

Zitat:
Zitat von Nightstalker Beitrag anzeigen
...ist sogar noch schlimmer geworden...
Kann ich durchaus nachvollziehen...

Hier mal ein (simples und übersichtliches) Beispiel, wie eine HTML-Mail (mit alternativem Plain-Text-Teil) aussehen kann:

PHP-Code:
<?php
  
// Message-Boundary.
  
$boundary md5 microtime () );

  
// Allgemeine Header.
  
$header  'From: Frau Musterman <fm@domain.tld>' "\n";
  
$header .= 'MIME-Version: 1.0' "\n";
  
$header .= 'Content-Type: multipart/alternative; boundary=' $boundary "\n";
  
$header .= "\n";

  
// Plain-Text-Abschnitt.
  
$header .= '--' $boundary "\n";
  
$header .= 'Content-Type: text/plain' "\n";
  
$header .= "\n";
  
$header .= 'Plain-Text Inhalt!' "\n";

  
// HTML-Abschnitt.
  
$header .= '--' $boundary "\n";
  
$header .= 'Content-Type: text/html' "\n";
  
$header .= "\n";
  
$header .= '<html>' "\n";
  
$header .= '  <head>' "\n";
  
$header .= '    <style type="text/css">' "\n";
  
$header .= '      body' "\n";
  
$header .= '      {' "\n";
  
$header .= '        font-size: 22px;' "\n";
  
$header .= '      }' "\n";
  
$header .= '    </style>' "\n";
  
$header .= '  </head>' "\n";
  
$header .= '  <body>' "\n";
  
$header .= '    <u>HTML Inhalt</u>' "\n";
  
$header .= '  </body>' "\n";
  
$header .= '</html>';

  
// MIME-Mail senden.
  
mail 'Herr Musterman <hm@domain.tld>''Betreff'''$header );
?>
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #9  
Alt 06.04.2008, 22:12:42
Nightstalker Nightstalker ist offline
Anfänger
 
Registriert seit: Jul 2007
Beiträge: 24
AW: HTML funktioniert nicht in E-Mail

Jetzt funktioniert es fast. Die HTML Formatierung funktioniert, allerdings werden keine Zeilenumbrüche in der Mail welche nicht per Hand (also als <br />) eingefügt werden mehr angezeigt. Wie kann ich das wiederherstellen?? Ich weiß das ich dafür nl2br nehmen muss, allerdings weiß ich nicht wie ich es in diesem Fall mache da ich ja nirgendwo ein Echo vor stehen hab.

Hier der HTML Teil:

PHP-Code:
$header2 .= '--' $boundary "\n";
  
$header2 .= 'Content-Type: text/html' "\n";
  
$header2 .= "\n";
  
$header2 .= '<html>' "\n";
  
$header2 .= '  <head>' "\n";
  
$header2 .= '    <style type="text/css">' "\n";
  
$header2 .= '      body' "\n";
  
$header2 .= '      {' "\n";
  
$header2 .= '        font-size: 12px;' "\n";
  
$header2 .= '      }' "\n";
  
$header2 .= '    </style>' "\n";
  
$header2 .= '  </head>' "\n";
  
$header2 .= '  <body>' "\n";
  
$header2 .= '    Sie haben soeben eine neue Bewerbung für die Aufnahme ins Netzwerk erhalten. Hier sind die Daten:<br /><br />
Nick: ' 
$_POST[name] . '<br /><br />
EMail: ' 
$_POST[email] . '<br /><br />
Die Bewerbung: ' 
$_POST[bewerbung] . '<br /><br />
"\n";
  
$header2 .= '  </body>' "\n";
  
$header2 .= '</html>'
Die Bewerbungsvariable soll automatische Zeilenumbrüche erzeugen.

Geändert von Nightstalker (06.04.2008 um 22:14:59 Uhr)
Mit Zitat antworten
  #10  
Alt 06.04.2008, 22:31:09
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: HTML funktioniert nicht in E-Mail

Es heißt nicht $_POST[var] sonder $_POST['var'].

Zu Deiner Frage:

PHP-Code:
// ...
$header2 .= '    Sie haben soeben eine neue Bewerbung für die Aufnahme ins ' "\n";
$header2 .= '    Netzwerk erhalten. Hier sind die Daten:<br /><br />' "\n";
$header2 .= '    Nick: ' $_POST['name'] . '<br /><br />' "\n";
$header2 .= '    EMail: ' $_POST['email'] . '<br /><br />' "\n";
$header2 .= '    Die Bewerbung: ' nl2br $_POST['bewerbung'] ) . '<br /><br />' "\n";
// ... 
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
Antwort


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
HTML Mail funktioniert nicht richtig ProGamer11 PHP Grundlagen 2 05.05.2006 23:03:56
Formular als Html Mail verschicken luckypycho PHP für Fortgeschrittene und Experten 1 17.02.2004 22:23:18
Formular als Html Mail verschicken, Checkbox probleme! luckypycho PHP Grundlagen 0 15.02.2004 19:50:54
html mail Stifler PHP Grundlagen 6 16.01.2004 16:58:05
HTML mail OlliT PHP Grundlagen 8 09.07.2003 18:57:13


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:14:53 Uhr.


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


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