PHP邮件功能html内容在电子邮件中不可见 [英] PHP mail function html content not visible in email

查看:128
本文介绍了PHP邮件功能html内容在电子邮件中不可见的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用php mail()函数发送带有附件的电子邮件。电子邮件正确发送附件,但html内容(邮件正文)在我的电子邮件中不可见。它只显示附件文件。

Im trying to send a email with attachment using php mail() function. The email sent correctly with attachment, but html contents(body of the mail) not visible in my email. 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";
?>


推荐答案

只需删除 $ strHeader 。=这是MIME格式的多部分消息。\\\
;
并替换 $ strHeader。=Content:$ htmlbody。 \\ n; to $ strHeader。=$ htmlbody。\\\
;

这篇关于PHP邮件功能html内容在电子邮件中不可见的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆