【问题标题】:PHP Pear email message format wrongPHP Pear 电子邮件格式错误
【发布时间】:2015-04-07 03:26:50
【问题描述】:

我知道这个标题很奇怪,我一辈子都不能说得很好,哈哈。

我已经用多种表述问题的方式进行了搜索,但没有任何结果。

我的电子邮件脚本正在我正在构建的网站上工作,这太棒了!但是当我编辑邮件代码以添加额外的消息行时,它使序列出错。

这是我用于电子邮件区域的代码:

<?php

require_once "Mail.php";

// load the variables form address bar

$name = $_REQUEST["name"];
$subject = 'Customer Feedback';
$message = $_REQUEST["message"];
$from = $_REQUEST["from"];
$compname = $_REQUEST["companyName"];
$ph = $_REQUEST["phone"];
$acp = $_REQUEST['allowCommentPublish'];
$marketing = $_REQUEST['incmarketing'];
$verif_box = $_REQUEST["verif_box"];

// Checking the check boxes and marking as appropriate
if(isset($_POST['allowCommentPublish']))
        {
            $acp = 'Yes';
        }

    else
        {
            $acp = 'No';
        }

if(isset($_POST['incmarketing']))
        {
            $marketing = 'Yes';
        }

    else
        {
            $marketing = 'No';
        }

// Optional data checker
if($compname == '')
    {
        $compname = 'N/A';
    }

if($ph == '')
    {
        $ph = 'N/A';
    }

// remove the backslashes that normally appears when entering " or '
$name = stripslashes($name);
$message = stripslashes($message);
$subject = stripslashes($subject);
$acp = stripcslashes($acp);
$marketing = stripcslashes($marketing);
$from = stripslashes($from);

// check to see if verificaton code was correct
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon'])
    {
        // if verification code was correct send the message and show this page
        $ToEmail = "email@email.com";

        $message = "Name: ".$name."\n".$message;
        $message = "From: ".$from."\n".$message;
        $message = "Comments: ".$message."\n".$message;
        $message = "Allow feedback to be Published: ".$acp."\n".$message;
        $message = "[ OPTIONAL DATA ]"."\n".$message;
        $message = "Company Name: ".$compname."\n".$message;
        $message = "Phone Number: ".$ph."\n".$message;
        $message = "Allow extra Marketing? ".$marketing."\n".$message;

        $headers = array ('From' => $from,
                  'To' => $ToEmail,
                  'Subject' => 'Feedback: '.$subject);

        $smtp = Mail::factory('smtp', array ('host' => 'smtp.vic.exemail.com.au', 'auth' => false));

        $mail = $smtp->send($ToEmail, $headers, $message);

        // delete the cookie so it cannot sent again by refreshing this page
        setcookie('tntcon','');

        header("Location: /feedback_sent.php");
        exit;
    } 
else 
    {
        // if verification code was incorrect then return to contact page and show error
        header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
        exit;
    }
?>

在我看来,这应该会吐出消息体:

姓名:此处为姓名
发件人:电子邮件地址
评论:在这里留言
允许发布反馈:响应
[ 可选数据 ]
公司名称:公司
电话号码:电话
允许额外的营销:

这应该是它在电子邮件中的样子吧?

我实际得到的是:

允许发布反馈:响应
[ 可选数据 ]
公司名称:公司
电话号码:电话
允许额外的营销?回应
发件人:电子邮件地址
姓名:这里的姓名
评论:在此留言

这正常吗?还是我无意中将它扼杀在某个地方,并把它作为付款弄乱了我的脑袋?

感谢您对此的任何帮助。

编辑:更新代码。

<?php
// ----------------------------------------- 
//  The Web Help .com
// ----------------------------------------- 
// remember to replace your@email.com with your own email address lower in this code.

require_once "Mail.php";

// load the variables form address bar
$name = $_REQUEST["name"];
$subject = 'Customer Feedback';
$comment = $_REQUEST["message"];
$from = $_REQUEST["from"];
$compname = $_REQUEST["companyName"];
$ph = $_REQUEST["phone"];
$acp = $_REQUEST['allowCommentPublish'];
$marketing = $_REQUEST['incmarketing'];
$verif_box = $_REQUEST["verif_box"];

    // Checking the check boxes and marking as appropriate
    if(isset($_POST['allowCommentPublish']))
            {
                $acp = 'Yes';
            }

        else
            {
                $acp = 'No';
            }

    if(isset($_POST['incmarketing']))
            {
                $marketing = 'Yes';
            }

        else
            {
                $marketing = 'No';
            }

    // Optional data checker
    if($compname == '')
        {
            $compname = 'N/A';
        }

    if($ph == '')
        {
            $ph = 'N/A';
        }

// remove the backslashes that normally appears when entering " or '
$name = stripslashes($name);
$comment = stripslashes($comment);
$subject = stripslashes($subject);
$acp = stripcslashes($acp);
$marketing = stripcslashes($marketing);
$from = stripslashes($from);

    // check to see if verificaton code was correct
    if(md5($verif_box).'a4xn' == $_COOKIE['tntcon'])
        {
            // if verification code was correct send the message and show this page
            $ToEmail = "jim@digital2go.com.au";

            $message = "Name: ".$name."\n".$message;
            $message .= "From: ".$from."\n".$message;
            $message .= "Comments: ".$comment."\n".$message;
            $message .= "Allow feedback to be Published: ".$acp."\n".$message;
            $message .= "[ OPTIONAL DATA ]"."\n".$message;
            $message .= "Company Name: ".$compname."\n".$message;
            $message .= "Phone Number: ".$ph."\n".$message;
            $message .= "Allow extra Marketing? ".$marketing."\n".$message;

            $headers = array ('From' => $from,
                      'To' => $ToEmail,
                      'Subject' => 'Feedback: '.$subject);

            $smtp = Mail::factory('smtp', array ('host' => 'smtp.vic.exemail.com.au', 'auth' => false));

            $mail = $smtp->send($ToEmail, $headers, $message);

            // delete the cookie so it cannot sent again by refreshing this page
            setcookie('tntcon','');

            header("Location: /feedback_sent.php");
            exit;
        } 
    else 
        {
            // if verification code was incorrect then return to contact page and show error
            header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
            exit;
        }
?>

【问题讨论】:

    标签: php email format message


    【解决方案1】:

    按您希望的顺序让您的消息“继续”:

        $message = "Name: ".$name."\n".$message;
        $message .= "From: ".$from."\n".$message;
        $message .= "Comments: ".$message."\n".$message;
        $message .= "Allow feedback to be Published: ".$acp."\n".$message;
        $message .= "[ OPTIONAL DATA ]"."\n".$message;
        $message .= "Company Name: ".$compname."\n".$message;
        $message .= "Phone Number: ".$ph."\n".$message;
        $message .= "Allow extra Marketing? ".$marketing."\n".$message;
    

    【讨论】:

    • 谢谢。它认为它很简单:)
    • 好吧,那种工作。现在,它通过一遍又一遍地重复消息来发送垃圾邮件,现在只显示几个字段。
      ive 修改了代码,将用于从上一页获取文本区域数据的 $message 变量更改为是 $cmets 并将电子邮件正文保留为 $message 但效果相同。
    • 用新代码在上面编辑你的代码,让我看看。
    • 啊,去掉每一行结尾的.$message,这就是垃圾邮件的原因
    • 啊,它再次归结为一个简单的解决方案。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 2017-04-03
    相关资源
    最近更新 更多