在FROM中使用名称和电子邮件发送邮件的正确方法

时间:2013-12-19 06:59:15

标签: php email jquery

我无法将此功能发挥作用我想将电子邮件发送给我:

 Persons Name <personsName@example.com>

我一直在查看其他示例,我认为我的一切正确我在代码中找不到任何不合适的地方。发送给我的电子邮件中的FROM是来自username@just122.justhost.com它不会显示为Persons NamepersonsName@example.com,除非我将$header更改为

$header = 'From:' $email;

$header = 'From: $name;

有人能发现我做错了吗?

<?php 
    $name = $_REQUEST['name'];
    $email = $_REQUEST['email'];
    $message = $_REQUEST['message']; 
    $subject = "Message from Blog"; 
    $header = 'From: ' . $name . '<'.$email.'>' . "\r\n"; 
    mail("test@example.com", $subject, $message, $header); 

?>

形式     

            <label for="name">Name:</label><input class="inputField" type="text" size="30" id="name"/><div style="display: none;" id="error-name"><font color="#FF0000">Your name here!</font></div><br />
            <label for="email">Email:</label><input class="inputField" type="text" size="30" id="email" /> <div style="display: none;" id="error-email"><font color="#FF0000">Your email here!</font></div><br />
            <div style="display: none;" id="error-message"><font color="#FF0000">Your message here!</font></div>
            <label for="message">Message:</label><textarea id="message" rows="9" cols="59"></textarea> <br />

            <input type="button" id="submit-button" value="Send Message" onclick="sendEmail();"/>
    <div id="messages">
                <div style="display: none;" id="loading"> <font color="#FF0000">Sending..</font></div> 
                <div style="display: none;" id="message-sent"><font color="#008040">Message sent!</font></div> 
                <div style="display: none;" id="error-content"><font color="#FF0000">Please enter some content!</font></div> 
    </div>
    <br />
    </div>

的Ajax

function sendEmail() {
        $("#loading").fadeIn(100).show(); 
        var name = $("#name").val();
        var email = $("#email").val(); 
        var message = $("#message").val(); 
        var data = "name=" + name + "&email" + email + "&message=" + message; 


        if(name == "") { 
            $("#error-name").fadeIn(700).show(); 
            $("#loading").fadeOut(100).hide(); 
        } else if(email == "") {
            $("#error-email").fadeIn(700).show();
            $("#loading").fadeOut(100).hide(); 
        } else if(message == "") {
            $("#error-message").fadeIn(700).show();
            $("#loading").fadeOut(100).hide(); 
        } else { 
            $.ajax({ 
                type: "POST", 
                url: "send.php", 
                data: data, 
                success: function() { 
                    $("#loading").fadeOut(100).hide(); 
                    $('#message-sent').fadeIn(500).show(); 
                } 
            }); 
        } 
}

1 个答案:

答案 0 :(得分:1)

Javascript中有一个小错字:

var data = "name=" + name + "&email=" + email + "&message=" + message;

请注意=

末尾的&email=

但是,我想提一下,大多数托管服务提供商不允许您从服务器上不存在的域发送电子邮件。幸运的是,这个问题被证明是一个错字。