PHP PHP e-Mail mit HTML abschnitt als mail...

ulla550

Cadet 2nd Year
Registriert
Apr. 2011
Beiträge
20
Hallo zusammen,:lol:
ich brauche unbedingt eure hilfe,
ich habe mir hier ein script zusammen gebastelt... funktioniert auch sehr gut- naja FAST
wenn ich die e-mail als empfänger mit outlook öffne dann funktioniert alles einwandfrei, sobald ich die e-mail aber mit gmx,yahoo,web öffnen will kommt gar nichts. ich kann nur den sender und betreff sehen mehr nicht.

was muss ich ändern damit es zumindest 80% der empfänger mit gmx,web,hotmail,yahoo
lesen können....

hier mal der CODE:D


PHP:
<?php
//define the receiver of the email
$to = "empfaenger@der-email.de"; 
//define the subject of the email
$subject = 'Meine Test e-Mail'; 
//create a boundary string. It must be unique 
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time())); 
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: Ulla<ulla550@der-email.de>\r\nReply-To: ";
$headers.= "\r\nBcc: Admin<ulla550@admin2.de>\r\nAdmin: ";
//add boundary string and mime type specification
$headers .= "\r\nContent-Type: multipart/alternative; boundary=UTF-8\"PHP-alt-".$random_hash."\""; 
//define the body of the message.
ob_start(); //Turn on output buffering
?>
--PHP-alt-<?php echo $random_hash; ?>  
Content-Type: text/html ; charset="UTF-8" 
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TEST HTML TEXT</title>


</head>

<body>
<span class="Stil1">Also hier würde dann der HTML test stehen...</span>
</body>
</html>

--PHP-alt-<?php echo $random_hash; ?>--
<?

//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" 
echo $mail_sent ? "Yeeaaah die e-mail wurde gesendet" : "Nöö hat nicht geklappt";
?>


DANKE IM VORRAUS :freak: ;)
 
Du kannst keine CSS in HTML-E-Mails nutzen.
D.h. jede Eigenschaft zur Gestaltung muss als Attribute im HTML-Tag stehen, wie "bgcolor, oder background .

So etwas wie "<span class="Stil1">" wird nicht klappen ;)
Eine Einschränkung mit dem Standards ist glaube ich auch vorhanden, also XHTML 1.1 in Mails wäre mir zumindest neu.
 
so da bin ich wieder da, also erstmal danke Eagle-PsyX-
nun ich habe nochmal etwas an meinem code gebastelt und habe jetzt auch mehr oder weniger den fehler gefunden
(also natürlich auch das css, Mime 1.0 das content muss text/html sein usw.)

er funktioniert soweit eigentlich sehr gut, PROBLEM ist das bei der ankommenden e-mail egal ob web.de gmx,yahoo, outlook ...immer ein Code steht - oben sowie unten:

ea0a2ea8475a3e8207848c20017d2ae1

oder--PHP-alt-ea0a2ea8475a3e8207848c20017d2ae1

der coder verändert sich jedesmal... ich geh davon aus das, dass ein server schickt?
hier nochmal der code vielleicht wisst ihr eine lösung... also ich verzweifel ..

PHP:
<?php
//define the receiver of the email
$to = "DEMO@gmx.de"; 
//define the subject of the email
$subject = 'Hier steht halt der betreff'; 
//create a boundary string. It must be unique 
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time())); 
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: Ulla550<Ulla550@DEMO.com>\r\nReply-To: ";
$headers.= "\r\nReturn-Path: test@demo.de\r\nHome: ";
$headers.= "\r\nBcc: Admin<home@ulla550.de>\r\nAdmin: ";
$headers.= "Content-Transfer-Encoding: base64\r\n ";
$headers.= "X-Mailer: PHP/" . phpversion(). "n" ;
//add boundary string and mime type specification
$headers.= "\r\nContent-Type: text/html; boundary=UTF-8\"PHP-alt-".$random_hash."\""; 
$headers.= "MIME-Version: 1.0\r\n";
//define the body of the message.
ob_start(); //Turn on output buffering 
?>

<?php echo $random_hash; ?> 

<p>
<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Site</title><script>window.User={kEI:"EbbVTOPPHse1-gapl8WQDw",kEXPI:"17259,26637,27404",kCSI:{e:"17259,26637,27404",ei:"EbbVTOPPHse1-gapl8WQDw",expi:"17259,26637,27404"},ml:function(){},kHL:"de",time:function(){return(new Date).getTime()},log:function(b,d,c){var a=new Image,e=User,g=e.lc,f=e.li;a.onerror=(a.onload=(a.onabort=function(){delete g[f]}));g[f]=a;c=c||"/gen_204?atyp=i&ct="+b+"&cad="+d+"&zx="+User.time();a.src=c;e.li=f+1},lc:[],li:0,Toolbelt:{}};
window.User.sn="webhp";var i=window.User.timers={};window.User.startTick=function(a,b){i[a]={t:{start:(new Date).getTime()},bfr:!(!b)}};window.User.tick=function(a,b,c){if(!i[a])User.startTick(a);i[a].t[b]=c||(new Date).getTime()};User.startTick("load",true);try{}catch(v){}
window.User.jsrt_kill=1;
var _gjwl=location;function _gjuc(){var e=_gjwl.href.indexOf("#");if(e>=0){var a=_gjwl.href.substring(e);if(a.indexOf("&q=")>0||a.indexOf("#q=")>=0){a=a.substring(1);if(a.indexOf("#")==-1){for(var c=0;c<a.length;){var d=c;if(a.charAt(d)=="&")++d;var b=a.indexOf("&",d);if(b==-1)b=a.length;var f=a.substring(d,b);if(f.indexOf("fp=")==0){a=a.substring(0,c)+a.substring(b,a.length);b=c}else if(f=="cad=h")return 0;c=b}_gjwl.href="/search.php";return 1}}}return 0}function _gjp(){!(window._gjwl.hash&&
window._gjuc())&&setTimeout(_gjp,500)};
window._gjp && _gjp()</script><style id=gstyle>
body{margin:0}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}body,td,a,p,.h{font-family:arial,sans-serif}.h{color:#36c;font-size:20px}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}em{font-weight:bold;font-style:normal}.lst{width:496px}.tiah{width:458px}input{font-family:inherit}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c !important}#gog{background:#fff}#gbar,#guser{font-size:13px;padding-top:1px !important}#gbar{float:left;height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}#gbs,.gbm{background:#fff;left:0;position:absolute;text-align:left;visibility:hidden;z-index:1000}.gbm{border:1px solid;border-color:#c9d7f1 #36c #36c #a2bae7;z-index:1001}.gb1{margin-right:.5em}.gb1,.gb3{zoom:1}.gb2{display:block;padding:.2em .5em}.gb2,.gb3{text-decoration:none;border-bottom:none}a.gb1,a.gb2,a.gb3,a.gb4{color:#00c !important}a.gb2:hover{background:#36c;color:#fff !important}body{background:#fff;color:black}input{-moz-box-sizing:content-box}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#4272db}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead a.gb2:hover{color:#fff!important}.ds{display:-moz-inline-box}.ds{border-bottom:solid 1px #e7e7e7;border-right:solid 1px #e7e7e7;display:inline-block;margin:3px 0 4px;margin-left:4px}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px;}.lsbb{background:#eee;border:solid 1px;border-color:#ccc #999 #999 #ccc;height:30px;display:block}.lsb{
	background:url(/images/srpr/nav_logo14.png) bottom;...usw
<p>
</html>
<body>

<?php echo $random_hash; ?>
<?
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" 
echo $mail_sent ? "Yeeaaah die e-mail wurde gesendet" : "Nöö hat nicht geklappt";
?>


also ich denk irgend etwas stimmt nicht mit der

Mime 1.0

da sobald ich diese weg mache kommt die e-mail leer an.
zudem schaffe ich es nicht mehr die umlaute

Ä Ö Ü ä ö ü darzustellen...

hoffe ihr köönt mir helfen, ich verzweifel schon...:heul:
 
Hallo,

Die 2 Zeilen kommen durch den Befehl.

PHP:
<?php echo $random_hash; ?>

Du generierst oben

PHP:
//create a boundary string. It must be unique 
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time()));

ein MD5 Hash aus dem aktuellen Zeitstempel . Die Zahl ändert sich deswegen auch immer da der aktuelle Zeitstempel benutzt wird.

Mit Freundlichen Grüßen
Keks
 
hallo dc2k5-KampfKeks

habs jetzt geschaft mitunter deiner hilfe, ich habe einfach das "echo" gelöscht.
damit ich die mail richtig erhalte - bei gmx,outlook,web,yahoo und co.



zudem musste ich noch
PHP:
$mail_sent = @mail( $to, $subject, utf8_decode($message), $headers );
utf8_decode eingeben und siehe da das ÄÖÜ problem ist auch weg

danke für die HILFE :D
 
Zurück
Oben