Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在phpmailer消息体中使用变量_Php_Phpmailer - Fatal编程技术网

如何在phpmailer消息体中使用变量

如何在phpmailer消息体中使用变量,php,phpmailer,Php,Phpmailer,我正在编辑表单,希望在用户填写表单并发送表单时以邮件形式接收。我以前收到过邮件中的变量,比如:Name:$Name。现在contact.php返回一个空白页,我无法以邮件形式接收表单 在那之前我试过 $body_message = 'Name: ' . $name . "\r\n"; $body_message .= 'E-mail: ' . $mail_from . "\r\n"; $body_message .= 'Message: ' . $message; 但它不起作用。而且 $m

我正在编辑表单,希望在用户填写表单并发送表单时以邮件形式接收。我以前收到过邮件中的变量,比如:Name:$Name。现在contact.php返回一个空白页,我无法以邮件形式接收表单

在那之前我试过

$body_message = 'Name: ' . $name . "\r\n"; 
$body_message .= 'E-mail: ' . $mail_from . "\r\n"; 
$body_message .= 'Message: ' . $message;
但它不起作用。而且

$mail->Body = '<b>You have a reservation!</b>
Name: $name
Surname: $surname
Phone: $phone
Mail: $mail
Address: $address
Services: $check
';
$mail->Body='您已经预订了!
姓名:$Name
姓:$姓
电话:$Phone
邮件:$Mail
地址:$地址
服务:$支票
';
现在我的代码是:

$name = $_POST['name'];
$surname = $_POST['surname'];
$mail = $_POST['mail'];
$phone = $_POST['phone'];
$address= $_POST['address'];

if(!empty($_POST['check_list'])) {
    foreach($_POST['check_list'] as $check) {           
        return $check;
    }
}

$mail->Subject = 'Reservation';
$mail->Body    = '<b>You have a reservation!</b></br>'
.'Name: '.$name.'</br>'
.'Surname: '.$surname.'</br>'
.'Mail: '.$mail.'</br>'
.'Phone: '.$phone.'</br>'
.'Address: '.$address.'</br>'
.'Services: '.$check;

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
    header('Location: index.php');
    exit();
}
$name=$\u POST['name'];
$姓氏=$_POST['姓氏'];
$mail=$_POST['mail'];
$phone=$_POST['phone'];
$address=$_POST['address'];
如果(!空($\u POST['check\u list'])){
foreach($_POST['check_list']作为$check){
退回美元支票;
}
}
$mail->Subject='Reservation';
$mail->Body='您已经预订了
' .'Name:'.$Name.
' .“姓氏:”.$姓氏。
' .“邮件:”.$Mail.
' .“电话:”.$Phone.
' .“地址:”.$地址。
' .“服务:”.$支票; 如果(!$mail->send()){ echo“无法发送消息”; 回显“邮件错误:”。$mail->ErrorInfo; }否则{ 回音“消息已发送”; 标题('Location:index.php'); 退出(); }
您的代码有2个错误

1.)您将电子邮件地址分配给表单中的$mail。然后访问$mail实例,该实例应被误认为是PHPMailer实例

$mail = $_POST['mail'];
....
....
$mail->Subject = 'Reservation';
$mail->Body    = '<b>You have a reservation!</b></br>'
....
....
修复

$name    = $_POST['name'];
$surname = $_POST['surname'];
$email   = $_POST['mail'];
$phone   = $_POST['phone'];
$address = $_POST['address'];
$services= array();

if (!empty($_POST['check_list']) && is_array($_POST['check_list'])) {
    foreach ($_POST['check_list'] as $check) {           
        $services[] = $check;
    }
}

$mail = new PHPMailer;
//other PHPMailer config options
....
....
$mail->Subject = 'Reservation';
$mail->Body    = '<b>You have a reservation!</b></br>'
.'Name: '.$name.'</br>'
.'Surname: '.$surname.'</br>'
.'Mail: '.$email.'</br>'
.'Phone: '.$phone.'</br>'
.'Address: '.$address.'</br>'
.'Services: '. implode(', ', $services);

if (!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
    header('Location: index.php');
    exit();
}
$name=$\u POST['name'];
$姓氏=$_POST['姓氏'];
$email=$_POST['mail'];
$phone=$_POST['phone'];
$address=$_POST['address'];
$services=array();
if(!empty($\u POST['check\u list'])和&is\u数组($\u POST['check\u list'])){
foreach($_POST['check_list']作为$check){
$services[]=$check;
}
}
$mail=新的PHPMailer;
//其他PHPMailer配置选项
....
....
$mail->Subject='Reservation';
$mail->Body='您已经预订了
' .'Name:'.$Name.
' .“姓氏:”.$姓氏。
' .“邮件:”.$email.
' .“电话:”.$Phone.
' .“地址:”.$地址。
' .“服务:”。内爆(“,”,$services); 如果(!$mail->send()){ echo“无法发送消息”; 回显“邮件错误:”。$mail->ErrorInfo; }否则{ 回音“消息已发送”; 标题('Location:index.php'); 退出(); }
此行:

$mail = $_POST['mail'];
表示
$mail
是一个包含一些电子邮件的字符串

这是:

$mail->Subject
意味着
$mail
是某个类的实例

它是字符串还是某个类的实例?你能告诉我吗


如前所述,在
foreach
中使用
return
会导致脚本或函数(无论您有什么)停止脚本执行或结束函数执行

退回美元支票;正在退出您的脚本。有两个变量/实例造成混淆
$mail->
$mail=$\u POST
是什么?您检查了我的答案了吗。您的代码中有语法错误抱歉@AddWeb Solution Pvt Ltd。我在这里写错了。实际上像$umail。在通过
print\r($mail)发送邮件之前,您可以查看邮件包含的内容;退出()
,如果(!$mail->send()),则将其置于
之前。你可以看到你是否犯了任何错误,这样你就可以很容易地修复它。我把$check称为数组,你的foreach也有相同的变量。我已经在代码中修复了它。现在它正在收集$services变量中的复选框值。非常感谢@Pradeep Sanjaya:)它工作正常。我是php的新手,非常有启发性。
$mail->Subject