我收到来自php和js的空白电子邮件 [英] I am getting blank email from php and js

查看:98
本文介绍了我收到来自php和js的空白电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请帮我解码真正的问题。问题是,尽管我对这段代码进行了调整和研究,我仍然收到一封空白的电子邮件。以下是我的html,javascript(ajax)和php代码。



HTML代码:名为contact.html的文件

 < form id =main-contact-formclass =contact-formname =contact-formmethod =postaction =sendemail.php> 
< div class =col-sm-5 col-sm-offset-1>
< div class =form-group>
< label> Name *< / label>
< input type =textname =nameclass =form-controlrequired =required>
< / div>
< div class =form-group>
< label>电子邮件*< / label>
< input type =emailname =emailclass =form-controlrequired =required>
< / div>
< div class =form-group>
< label> Phone< / label>
< input type =numberclass =form-control>
< / div>
< div class =form-group>
< label>公司名称< / label>
< input type =textclass =form-control>
< / div>
< / div>
< div class =col-sm-5>
< div class =form-group>
< label> Subject *< / label>
< input type =textname =subjectclass =form-controlrequired =required>
< / div>
< div class =form-group>
< label>消息*< / label>
< textarea name =messageid =messagerequired =requiredclass =form-controlrows =8>< / textarea>
< / div>
< div class =form-group>
< button type =submitname =submitclass =btn btn-primary btn-lgrequired =required> Submit Message< / button>
< / div>
< / div>
< / form>

AJAX代码:名为main.js的文件

  //联系表单
var form = $('#main-contact-form');
form.submit(function(event){
event.preventDefault();
var form_status = $('< div class =form_status>< / div>') ;
$ .ajax({
url:$(this).attr('action'),

beforeSend:function(){
form.prepend form_status.html('< p>< i class =fa fa-spinner fa-spin>< / i>电子邮件正在发送...< / p>')fadeIn());
}
})。done(function(data){
form_status.html('< p class =text-success>'+ data.message +'< / p> ;')。delay(3000).fadeOut();
});
});

PHP代码:名为sendemail.php的文件

 <?php 
header('Content-type:application / json');
$ status = array(
'type'=>'success',
'message'=>'感谢您联系我们,尽早与我联系b $ b);

$ name = @trim(stripslashes($ _ POST ['name']));
$ email = @trim(stripslashes($ _ POST ['email']));
$ subject = @trim(stripslashes($ _ POST ['subject']));
$ message = @trim(stripslashes($ _ POST ['message']));

$ email_from = $ email;
$ email_to ='email@email.com'; //替换为您的电子邮件

$ body ='Name:'。 $名称。 \\\
\\\
。 '电邮:'。 $电子邮件。 \\\
\\\
。 '学科: ' 。 $主题。 \\\
\\\
。 '信息: ' 。 $消息;

$ success = @mail($ email_to,$ subject,$ body,'From:<'。$ email_from。'>');

echo json_encode($ status);

?>

与此同时我继续收到一封空白的电子邮件,如下所示

 名称:

电子邮件:空白

电话:空白

主题:空白

消息:空白


解决方案

对所有你们(@Mateusz Klimentowicz,@ Mat副总裁,Jose Manuel AbarcaRodríguez,@ Vladimir Nu)感到非常感谢。我实际上按照你的指示,最后修正了JS文件和PHP文件,如下所示:



JS文件:

  //联系表单

var form = $('#main-contact-form');
form.submit(function(event){
event.preventDefault();
//序列化表单数据
var formData = $(form).serialize();
var form_status = $('< div class =form_status>< / div>');
$ .ajax({
type:'POST',
url:$(this).attr('action'),
data:formData,
beforeSend:function(){
form.prepend(form_status.html('< p> < i class =fa fa-spinner fa-spin>< / i>电子邮件正在发送...< / p>')fadeIn());
}
} ).done(function(data){
form_status.html('< p class =text-success>'+ data.message +'< / p>')。delay(3000)。 fadeOut();
});
});

PHP代码如下所示:

 <?php 

$ status = array(
'type'=>'success',
'message'= >感谢您与我们联系。尽快与我们联系!
);

$ fail = array(
'type'=>'fail',
'message'=>'请重试,您的邮件无法发送!
);

$ name = @trim(stripslashes($ _ POST ['name']));
$ email = @trim(stripslashes($ _ POST ['email']));
$ subject = @trim(stripslashes($ _ POST ['subject']));
$ message = @trim(stripslashes($ _ POST ['message']));


$ email_from = $ email;
$ email_to ='email@mail.com'; //替换为您的电子邮件

$ body ='Name:'。 $名称。 \\\
\\\
。 '电邮:'。 $电子邮件。 \\\
\\\
。 '学科: ' 。 $主题。 \\\
\\\
。 '信息: ' 。 $消息;

$ success = @mail($ email_to,$ subject,$ body,'From:<'。$ email_from。'>');

header('Content-type:application / json');

if($ success){
echo json_encode($ status);
}
else {
echo json_encode($ fail);
}
?>

在使用此代码之后,我最终没有收到空白页面的电子邮件。电子邮件现在已经被它的内容。感谢一堆。


Please help me with decoding what the real issue is. The issue is that I keep getting a blank email, despite all my tweaking and research on this code. Below are my html, javascript (ajax) and php code.

HTML code: file named contact.html

<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php">
    <div class="col-sm-5 col-sm-offset-1">
        <div class="form-group">
            <label>Name *</label>
            <input type="text" name="name" class="form-control" required="required">
        </div>
        <div class="form-group">
            <label>Email *</label>
            <input type="email" name="email" class="form-control" required="required">
        </div>
        <div class="form-group">
            <label>Phone</label>
            <input type="number" class="form-control">
        </div>
        <div class="form-group">
            <label>Company Name</label>
            <input type="text" class="form-control">
        </div>                        
    </div>
    <div class="col-sm-5">
        <div class="form-group">
            <label>Subject *</label>
            <input type="text" name="subject" class="form-control" required="required">
        </div>
        <div class="form-group">
            <label>Message *</label>
            <textarea name="message" id="message" required="required" class="form-control" rows="8"></textarea>
        </div>                        
        <div class="form-group">
            <button type="submit" name="submit" class="btn btn-primary btn-lg" required="required">Submit Message</button>
        </div>
    </div>
</form> 

AJAX code:file named main.js

// Contact form
var form = $('#main-contact-form');
form.submit(function(event){
    event.preventDefault();
    var form_status = $('<div class="form_status"></div>');
    $.ajax({
        url: $(this).attr('action'),

        beforeSend: function(){
            form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );
        }
    }).done(function(data){
        form_status.html('<p class="text-success">' + data.message + '</p>').delay(3000).fadeOut();
    });
});

PHP code: file named sendemail.php

<?php
header('Content-type: application/json');
$status = array(
    'type'=>'success',
    'message'=>'Thank you for contact us. As early as possible  we will contact you '
);

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

$email_from = $email;
$email_to = 'email@email.com';//replace with your email

$body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message;

$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');

echo json_encode($status);
die;
?>

with this I keep on getting a blank email as depicted below

Name:

Email: Blank

Phone: Blank

Subject: Blank

Message: Blank

解决方案

A BIG THANKS to ALL of you guys(@Mateusz Klimentowicz,@Mat VP,@Jose Manuel Abarca Rodríguez ,@ Vladimir Nu). I actually followed your instructions and ended up correcting both the JS file and the PHP file as shown below:

JS file:

// Contact form

var form = $('#main-contact-form');
form.submit(function(event){
    event.preventDefault();
    // Serialize the form data.
    var formData = $(form).serialize();
    var form_status = $('<div class="form_status"></div>');
    $.ajax({
        type: 'POST',
        url: $(this).attr('action'),
        data: formData,
        beforeSend: function(){
            form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );
        }
    }).done(function(data){
        form_status.html('<p class="text-success">' + data.message + '</p>').delay(3000).fadeOut();
    });
});

While the PHP code became this below:

<?php

    $status = array(
    'type'=>'success',
    'message'=>'Thank you for contacting us. As soon as possible  we will contact you!'
);

    $fail = array(
    'type'=>'fail',
    'message'=>'Please try again. Your mail could not be delivered!'
);  

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


$email_from = $email;
$email_to = 'email@mail.com';//replace with your email

$body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message;

$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');

header('Content-type: application/json');

if($success){
    echo json_encode($status);
}
else{
    echo json_encode($fail);
}
?>

And after using this code as stated below, i end up not getting any blank page email. Email is now delievered with it's content. Thanks a bunch.

这篇关于我收到来自php和js的空白电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆