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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
06.04.2008, 01:31:30
|
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
|
06.04.2008, 08:07:38
|
|
Junior Member
|
|
Registriert seit: Mar 2008
Ort: Heidelberg
Alter: 32
Beiträge: 164
|
|
AW: HTML funktioniert nicht in E-Mail
Lädst du die Mails mit einem Mailprogramm herunter? Ist HTML aktiviert?
|
06.04.2008, 10:34:54
|
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 10:35:17 Uhr)
|
06.04.2008, 13:47:12
|
|
Junior Member
|
|
Registriert seit: Mar 2008
Ort: Heidelberg
Alter: 32
Beiträge: 164
|
|
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 ($filename, strrpos ($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 ($handle, filesize ($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') ) == 0 || 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; } ?>
|
06.04.2008, 15:54:32
|
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??
|
06.04.2008, 17:10:11
|
|
Junior Member
|
|
Registriert seit: Mar 2008
Ort: Heidelberg
Alter: 32
Beiträge: 164
|
|
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
|
06.04.2008, 20:50:04
|
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>
|
|
06.04.2008, 20:57:24
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: HTML funktioniert nicht in E-Mail
Zitat:
Zitat von Nightstalker
...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
|
06.04.2008, 21:12:42
|
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 21:14:59 Uhr)
|
06.04.2008, 21:31:09
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
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
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:14:10 Uhr.
|