2017-12-01 2 views
-1

Ich habe Probleme, meinen HTML-Code richtig anzuzeigen (ohne die HTML-Tags), wenn er per E-Mail über eine PHP-Datei verschickt wird. Was $header oder $nmessage fehlt mir, damit es richtig angezeigt wird, wenn ein Empfänger die E-Mail erhält?HTML per PHP-Datei per E-Mail versenden

Mein PHP-Skript unten mit dem HTML-Code angezeigt wird weggelassen:

<?php 

if(@$_REQUEST['weakPassword'] != "TEST") 
{ 
echo "failed"; 
die(); 
} 

function mail_attachment_from_file($the_file, $filename , $mailto, $from_mail, $from_name, $replyto, $subject, $message) 
{ 
$content = $the_file; 
$content = chunk_split(base64_encode($content)); 
$uid = md5(uniqid(time())); 
$header = "From: ".$from_name." <".$from_mail.">\r\n"; 
$header .= "Reply-To: ".$replyto."\r\n"; 
$header .= "MIME-Version: 1.0\r\n"; 
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"; 
$nmessage = "--".$uid."\r\n"; 
$nmessage .= "Content-type:text/plain; charset=iso-8859-1\r\n"; 
$nmessage .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; 
$nmessage .= $message."\r\n\r\n"; 
$nmessage .= "--".$uid."\r\n"; 
$nmessage .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; 
$nmessage .= "Content-Transfer-Encoding: base64\r\n"; 
$nmessage .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"; 
$nmessage .= $content."\r\n\r\n"; 
$nmessage .= "--".$uid."--"; 

mail($mailto, $subject, $nmessage, $header); 

return true; 
} 

$to = @$_REQUEST['emailGuest']; 
$from = @$_REQUEST['emailFrom']; 

$subject = @$_REQUEST['emailSubject']; 

$message = ' 
<html> 
// HTML code 
</html>'; 

$fileName = @$_REQUEST['fileName']; 

$sep = sha1(date('r', time())); 

// Read in our file attachment 
$the_file = file_get_contents($_FILES['Filedata']['tmp_name']); 

mail_attachment_from_file($the_file, $fileName , $to, $from, "BLAH", $from, $subject, $message); 

echo "done"; 

?> 
+1

'Inhaltstyp: text/plain; charset = iso-8859-1' das ist dein Schuldiger. Sie sagen, dass die E-Mail im Nur-Text-Format gesendet wird. – hungrykoala

+0

Sie können auch PEAR oder andere Bibliotheken in Betracht ziehen, die Ihnen bei der Erstellung der richtigen MIME-Grenzen für Ihre E-Mails helfen können. Dies wird dazu beitragen sicherzustellen, dass es weniger wie SPAM aussieht und den RFC-Standards entspricht. Denken Sie auch daran, dass RFC-Status, wenn Sie HTML-formatierte E-Mails senden, sollte auch eine richtige TEXT MIME-Version sein. – Twisty

+0

@Twisty würden Sie PEAR oder die Bibliothek [phpmailer] (https://github.com/PHPMailer/PHPMailer) empfehlen? – hungrykoala

Antwort

1

ändern Content-Type dazu:

$nmessage .= "Content-type: text/html\r\n"; 

Daraus:

$nmessage .= "Content-type:text/plain; charset=iso-8859-1\r\n"; 

prüfen here: