简体   繁体   English

PHP邮件功能html内容在电子邮件中不可见

[英]PHP mail function html content not visible in email

Im trying to send a email with attachment using php mail() function. 我试图使用php mail()函数发送带有附件的电子邮件。 The email sent correctly with attachment, but html contents(body of the mail) not visible in my email. 电子邮件已正确发送并带有附件,但是html内容(邮件正文)在我的电子邮件中不可见。 it shows only the attachment file. 它仅显示附件文件。

<?php
$htmlbody="
<strong>Name:</strong> {$_POST['name']}<br>
<strong>Position:</strong> {$_POST['position']}<br>
<strong>Email:</strong> {$_POST['email']}<br>
<strong>Phone:</strong> {$_POST['phone']}<br>
<strong>Date Of Birth:</strong> {$_POST['dob']}<br>
<strong>Qualification:</strong> {$_POST['qual']}<br>
<strong>Experiance:</strong> {$_POST['experiance']}<br>
<strong>Remarks:</strong> {$_POST['remarks']}";

$strSid = md5(date('r', time()));
$strHeader = "";  
$strHeader .= "From: {$_POST['email']}\nReply-To: {$_POST['email']}\n";
$strHeader .= "MIME-Version: 1.0\n";  
$strHeader .= "Content-Type: multipart/mixed; boundary=\"".$strSid."\"\n";  
$strHeader .= "This is a multi-part message in MIME format.\n";  
$strHeader .= "--".$strSid."\n";  
$strHeader .= "Content-type: text/html; charset=utf-8\n";  
$strHeader .= "Content-Transfer-Encoding: 7bit\n";  
$strHeader .= "Content: ".$htmlbody."\n";

//*** Attachment ***//  
if(isset($_FILES['resume'])){
    $filename = $_FILES['resume']['name'];
    $ext = pathinfo($filename,PATHINFO_EXTENSION);

    if(!in_array($ext,array('doc','docx'))){ die('Invalid File'); }

    move_uploaded_file($_FILES['resume']['tmp_name'],"temp/$filename");
    $strContent = chunk_split(base64_encode(file_get_contents("temp/$filename")));

    $strHeader .= "--".$strSid."\n";  
    $strHeader .= "Content-Type: application/octet-stream; name=\"".$filename."\"\n";  
    $strHeader .= "Content-Transfer-Encoding: base64\n";  
    $strHeader .= "Content-Disposition: attachment; filename=\"".$filename."\"\n";
}

$to = "name@domain.com";
$subject = "Test email with attachment";
$mail = mail($to, $subject, $htmlbody, $strHeader);    
echo $mail ? "Mail sent" : "Mail failed";
?>

Just Removing " $strHeader .= "This is a multi-part message in MIME format.\\n"; " and replace " $strHeader .= "Content: ".$htmlbody."\\n"; " to " $strHeader .= "$htmlbody."\\n"; 只需删除“ $strHeader .= "This is a multi-part message in MIME format.\\n"; ”并将“ $strHeader .= "Content: ".$htmlbody."\\n";$strHeader .= "$htmlbody."\\n";为“ $strHeader .= "$htmlbody."\\n"; "

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM