通过电子邮件发送“textarea”HTML消息

时间:2018-03-29 05:21:33

标签: javascript php html json

我试图通过电子邮件发送“textarea”的内容,但这是空白的。怎么解决?

我的PHP代码

good working file picker

我的HTML代码:

<?php 
$input = json_decode(file_get_contents("php://input") , true);
$ToEmail = "my-correo@hotmail.com"; 
$EmailSubject = "CONTACTO "; 
$mailheader="Fue enviado por: ".$input['nombre-contacto-2']."\n";
$mailheader .= "From: ".$input['email-contacto-2']."\r\n";
$MESSAGE_BODY.="MENSAJE".$input['msn'];
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die 
("Failure"); 

echo "Saved";

我的JS代码

    <form action="" method="post" target="_blank" 
    onsubmit='event.preventDefault() ;sendForm1("form-contact")' 
     name="form-contact">
    <div class="row">
    <div class="col-sm-12">

  <label for="comment">Mensaje</label>
   <textarea class="form-control" rows="5" id="mensaje"  
   placeholder="Escribir consulta" name="msn"></textarea>        
                    </div>
                </div>
                <div id="send-1"></div>
        <input type="submit" value="send ">
        </form>

我收到的电子邮件只是空白内容,发生了什么?

错误是由textarea造成的吗?

2 个答案:

答案 0 :(得分:0)

你必须改变
$ MESSAGE_BODY =&#34; MENSAJE&#34; $ _ POST [&#39; MSN&#39;];
而不是 $ MESSAGE_BODY =&#34; MENSAJE&#34; $输入[&#39; MSN&#39;];

答案 1 :(得分:0)

您可以将变量包装在if语句中,以便检查是否实际填充了字段。

 <?php

 if( isset($_POST['msn']){

  $msn = nl2br(addslashes($_POST['msn'])); //Remove invalid chars by using addslashes

  $ToEmail = "my-correo@hotmail.com"; 
  $headers = "From: $from\n";
  $msn =  "MENSAJE :". $msn;

  mail($toEmail, $headers, $msn) or die ("Failure"); 

请尝试与变量命名保持一致,以避免出错并易于阅读。

有关PHP附加斜线的文档:https://www.php.net/manual/en/function.addslashes.php