通过电子邮件发送"文本区域"HTML 消息



我试图通过电子邮件发送" textarea"的内容,但这是空白的。如何解决它?

我的php代码

<?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']."rn";
$MESSAGE_BODY.="MENSAJE".$input['msn'];
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die 
("Failure"); 
echo "Saved";

我的HTML代码:

    <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>

我的JS代码

   function sendForm1(formName){
   var http = new XMLHttpRequest();
   http.open("POST","send.php",true);
   http.send(JSON.encodeForm(document.forms[formName]));
   http.onreadystatechange = function(){
  if(http.readyState == 4 && http.status == 200){
     console.log(http.responseText);
     document.getElementById("send-1").innerHTML="<h1>sending</h1>";
     }
  }
}
     JSON.encodeForm = function(form){
     var array = {};
    for (key in form) {
    var item=form[key];
    if(form.hasOwnProperty(key) && item == "[object HTMLInputElement]"){
      array[item.name]=item.value;
     }
      }
     return JSON.stringify(array);
    }

我收到的电子邮件仅是空白的内容,正在发生什么?

由于textarea引起的错误吗?

您必须更改
$ message_body。=" mensaje"。$ _ post ['msn'];
而不是
$ message_body。=" mensaje"。$ input ['msn'];

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

 <?php
 if( isset($_POST['msn']){
  $msn = nl2br(addslashes($_POST['msn'])); //Remove invalid chars by using addslashes
  $ToEmail = "my-correo@hotmail.com"; 
  $headers = "From: $fromn";
  $msn =  "MENSAJE :". $msn;
  mail($toEmail, $headers, $msn) or die ("Failure"); 

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

关于php addslashes的文档:https://www.php.net/manual/enual/en/function.addslashes.php

最新更新