MIME电子邮件,空白邮件正文

时间:2016-01-28 05:42:07

标签: php html email

所以我尝试搜索,但无法找到能够应用于我的代码的答案。我有一个开发人员为我更新了一个页面,这些电子邮件来自我的移动设备,但是我的计算机电子邮件Thunderbird上的主体总是空白的。有问题的代码如下所示:

$mailBody = "Dog Registration Form Data" . PHP_EOL . $strDogCName . ";" . $strDogFName . ";" . $strBreed . ";" . $strGender . ";" . $strHt . ";" . $strBdmm . "/" . $strBddd . "/" . $strBdyy . ";" . $strFName . ";" . $strLName . ";" . $strAddr1 . ";" . $strCity . ";" . $strState . ";" . $strZip . ";" . $strCountry . ";" . $strPhone . ";" . $strEMail . ";" . $member_num. ";" . $dog_num;
        // injection test before setting message headers
        $sender_name = $strFName . " " . $strLName;
        $sender_name = injection_test($sender_name);
        $sender_email = injection_test($strEMail);
        // Set headers and send.  This should be moved to a reusable function
        $mime_boundary = md5(time()); 
        $headers = '';
        $msg = '';
        $headers .= 'From: ' . $sender_name . ' <' . $sender_email . '>' . PHP_EOL;
        $headers .= 'Reply-To: ' . $sender_name . ' <' . $sender_email . '>' . PHP_EOL;
        $headers .= 'Return-Path: ' . $sender_name . ' <' . $sender_email . '>' . PHP_EOL;
        $headers .= "Message-ID: <" . time() . "cform@" . $_SERVER['SERVER_NAME'] . ">" . PHP_EOL;
        $headers .= 'X-Sender-IP: ' . $_SERVER["REMOTE_ADDR"] . PHP_EOL;
        $headers .= "X-Mailer: PHP v" . phpversion() . PHP_EOL;

        $headers .= 'MIME-Version: 1.0' . PHP_EOL;
        $headers .= 'Content-Type: multipart/related; boundary="' . $mime_boundary . '"';

        $msg .= '--' . $mime_boundary . PHP_EOL;
        $msg .= 'Content-Type: text/plain; charset="UTF-8"' . PHP_EOL;
        $msg .= 'Content-Transfer-Encoding: 8bit' . PHP_EOL . PHP_EOL;

        $msg .= $mailBody . PHP_EOL . PHP_EOL;
        $msg .= '--' . $mime_boundary . '--' . PHP_EOL . PHP_EOL;

        ini_set('sendmail_from', $sender_email);

        $msg = "Thank you for registering with NADAC.". PHP_EOL. " Here is the info you provided." . PHP_EOL ."Callname: ". $strDogCName . PHP_EOL. "Registered Name: " . $strDogFName . PHP_EOL . "Breed: " . $strBreed .PHP_EOL . "Gender: " . $strGender .PHP_EOL . "Height: " . $strHt .PHP_EOL . "Birthday: " . $strBdmm . "/" . $strBddd . "/" . $strBdyy .PHP_EOL . "Owner First Name: " . $strFName .PHP_EOL . "Owner Last Name: " . $strLName .PHP_EOL . "Address: " . $strAddr1 .PHP_EOL . "City: " . $strCity .PHP_EOL . "State: " . $strState .PHP_EOL . "Zip Code: " . $strZip .PHP_EOL . "Country: " . $strCountry .PHP_EOL . "Phone: " . $strPhone . PHP_EOL . "Email: " . $strEMail .PHP_EOL . "Associate number: " . $member_num. PHP_EOL . "Dog Number: " . $dog_num;
        $mailSubject = "Thank you for registering.";


        $send_status = mail($mailTo, $mailSubject, $msg, $headers);

        $mailTo = $strEMail;
        mail($mailTo, $mailSubject, $msg, $headers);

        ini_restore('sendmail_from');

        // should check send_status here and do something - TODO

        unset($_POST['submitted']);
        // Done with the mail,  display confirmation

我确定它只是一件简单的事情,我只是缺席了。但是我无法找到它,并且正在研究它的程序员似乎并不相信这个问题。我不相信这是我的电子邮件提供商的本地问题。

1 个答案:

答案 0 :(得分:0)

您是否尝试使用内容类型:multipart / alternative 而不是'multipart / related'?

如果双重mail()调用和$ send_status到未知$ mailTo var

那么奇怪的事情