php邮件脚本的语法错误

php邮件脚本的语法错误,php,email,Php,Email,我有一份工作联系表。我试图将其转换为只发送一个不同形式的电子邮件地址,以允许人们订阅邮件列表。我不太懂php。我正在使用codev,在语法中没有看到错误 这是我用于contact.php表单的代码: <?php $params = array( 'to' => 'mail@mail.com', 'from' => '<mail@mail.com>' ); $name = trim( $_POST['name'] ); $email = tri

我有一份工作联系表。我试图将其转换为只发送一个不同形式的电子邮件地址,以允许人们订阅邮件列表。我不太懂php。我正在使用codev,在语法中没有看到错误

这是我用于contact.php表单的代码:

<?php

$params = array(
    'to' => 'mail@mail.com', 
    'from' => '<mail@mail.com>' 
);

$name = trim( $_POST['name'] );
$email = trim( $_POST['email'] );
$subject = trim( $_POST['subject'] );
$message = trim( $_POST['message'] );

if ( empty( $name ) or empty( $message ) ) {
    echo json_encode( array( 'status' => 'error' ) );
} else if ( empty( $email ) or ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
    echo json_encode( array( 'status' => 'email' ) );
} else {
    $headers = 'From: ' . $name . ' ' . $params['from'] . "\r\n" .
    'Reply-To: ' . $email . "\r\n" .
    'X-Mailer: PHP/' . phpversion( );
    $message = str_replace( array( "\r", "\n" ), array( '', "\r\n" ), $message );

    if ( mail( $params['to'], ( empty( $subject ) ? 'New message without subject' : 'New message: ' . $subject ), $message, $headers ) ) {
        echo json_encode( array( 'status' => 'ok' ) );
    } else {
        echo json_encode( array( 'status' => 'error' ) );
    }
}
?>
这是我试图制作的新代码,用于在某人订阅时向我发送电子邮件:

  <?php
$params =   ["to" => "recieve@wuno.com", "from" => "noreply@wuno.com"];
$subject    =   "New Subscription";
$message    =   trim($_POST["subscribe"]);


if (empty($message)   || !filter_var($message, FILTER_VALIDATE_EMAIL)) {
    echo json_encode(["status" => "email"]);
} else {
    $headers    =   "From: {$params[from]}\r\n";
    $headers    .=  "Reply-To: {$message}\r\n";
    $headers    .=  "X-Mailer: PHP".phpversion()."\r\n";
    $message    =   str_replace(["\r","\n"], ["", "\r\n"], $message);
    if(mail($params["to"], $subject, $message, $headers)) {
        echo json_encode(["status" => "ok"]);
    } else {
        echo json_encode(["status" => "error"]);
    }
}
?>
是的,有

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
请仔细看看这里:

$email\u message=您愿意发送的任何消息…

是的,有

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
$params =   ["to" => "nichodiaz@gmail.com", "from" => "noreply@wuno.com"];
$subject    =   "New Suscription";
$message    =   trim($_POST["subscribe"]);
$subscribe  =   "???";

if (empty($subscribe)   || !filter_var($subscribe, FILTER_VALIDATE_EMAIL)) {
    echo json_encode(["status" => "email"]);
} else {
    $headers    =   "From: {$params[from]}\r\n";
    $headers    .=  "Reply-To: {$message}\r\n";
    $headers    .=  "X-Mailer: PHP".phpversion()."\r\n";
    $message    =   str_replace(["\r","\n"], ["", "\r\n"], $message);
    if(mail($params["to"], $subject, $message, $headers)) {
        echo json_encode(["status" => "ok"]);
    } else {
        echo json_encode(["status" => "error"]);
    }
}
请仔细看看这里:

$email\u message=您愿意发送的任何消息

$params =   ["to" => "nichodiaz@gmail.com", "from" => "noreply@wuno.com"];
$subject    =   "New Suscription";
$message    =   trim($_POST["subscribe"]);
$subscribe  =   "???";

if (empty($subscribe)   || !filter_var($subscribe, FILTER_VALIDATE_EMAIL)) {
    echo json_encode(["status" => "email"]);
} else {
    $headers    =   "From: {$params[from]}\r\n";
    $headers    .=  "Reply-To: {$message}\r\n";
    $headers    .=  "X-Mailer: PHP".phpversion()."\r\n";
    $message    =   str_replace(["\r","\n"], ["", "\r\n"], $message);
    if(mail($params["to"], $subject, $message, $headers)) {
        echo json_encode(["status" => "ok"]);
    } else {
        echo json_encode(["status" => "error"]);
    }
}
这完全基于您的代码。然而,我无法理解一些变量的位置,比如$subscribe实际上是未定义的,而$message从$u POST[subscribe]获取其值,应该是另一种方式,不是吗

我希望您的$message var上的格式保持不变,因为我认为它肯定还有其他用途。但是为什么邮件头中的回复地址是由$message变量填充的呢。。。我放弃

这完全基于您的代码。然而,我无法理解一些变量的位置,比如$subscribe实际上是未定义的,而$message从$u POST[subscribe]获取其值,应该是另一种方式,不是吗


我希望您的$message var上的格式保持不变,因为我认为它肯定还有其他用途。但是为什么邮件头中的回复地址是由$message变量填充的呢。。。我放弃

有些变量实际上是常量,因此可以预先定义,基本上是为了可读性,尽管可以硬编码

<?php 
$to='tomail@mail.com';
$from='noreply@mail.com';
$subject='New Subscription'; 
$message=trim($_POST['subscribe']); 

if(!filter_var($message,FILTER_VALIDATE_EMAIL)){
echo json_encode(["status" => "email"]);
}else{
$headers="From: $from\r\nReply-To: $message\r\nX-Mailer: PHP".phpversion()."\r\n"; 
$message=str_replace(["\r","\n"], ["", "\r\n"], $message); 
if(mail($to,$subject,$message,$headers)){ 
echo json_encode(["status" => "ok"]); 
}else{ 
echo json_encode(["status" => "error"]); 
}} 
?>

有些变量实际上是常量,因此可以预先定义,基本上是为了易读,尽管可以硬编码

<?php 
$to='tomail@mail.com';
$from='noreply@mail.com';
$subject='New Subscription'; 
$message=trim($_POST['subscribe']); 

if(!filter_var($message,FILTER_VALIDATE_EMAIL)){
echo json_encode(["status" => "email"]);
}else{
$headers="From: $from\r\nReply-To: $message\r\nX-Mailer: PHP".phpversion()."\r\n"; 
$message=str_replace(["\r","\n"], ["", "\r\n"], $message); 
if(mail($to,$subject,$message,$headers)){ 
echo json_encode(["status" => "ok"]); 
}else{ 
echo json_encode(["status" => "error"]); 
}} 
?>

我用我的时间工作server@tchow002没关系,这是一个语法错误。标题“X-Mailer:PHP/”。phpversion;在代码中重复,但我认为这不会导致您描述的问题。回复也应该是一个电子邮件地址。您具体收到了什么错误?我没有具体测试过,但你的空$subject吗?”新订户“:“新邮件:”$主题返回预期结果?这就是问题所在。它不归还任何东西。它提交的罚款,并没有显示到清楚,表单字段是张贴名称=订阅我想在电子邮件中得到它,并发送给我自己。代码的其余部分是我使用的代码,这些代码来自我发送联系人表单的工作脚本。我会用我从sidsters代码中合并的内容再次更新我的代码。谢谢你帮我完成我的工作server@tchow002没关系,这是一个语法错误。标题“X-Mailer:PHP/”。phpversion;在代码中重复,但我认为这不会导致您描述的问题。回复也应该是一个电子邮件地址。您具体收到了什么错误?我没有具体测试过,但你的空$subject吗?”新订户“:“新邮件:”$主题返回预期结果?这就是问题所在。它不归还任何东西。它提交的罚款,并没有显示到清楚,表单字段是张贴名称=订阅我想在电子邮件中得到它,并发送给我自己。代码的其余部分是我使用的代码,这些代码来自我发送联系人表单的工作脚本。我会用我从sidsters代码中合并的内容再次更新我的代码。谢谢你帮助我