使用我的PHP表单发送电子邮件的问题

时间:2017-01-21 02:08:11

标签: php html vb.net

我正在尝试使用VB.NET 2015为我的网站设置一个简单的“与我联系”表单。但我无法收到任何电子邮件。这是我的文件:

PHP:

<?php
error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");

//if "email" variable is filled out, send email
$email = htmlspecialchars($_POST["email"], ENT_QUOTES);
$subject = htmlspecialchars($_POST["subject"], ENT_QUOTES);
$comment = htmlspecialchars($_POST["comment"], ENT_QUOTES);

$comment = str_replace("\n.", "\n..", $comment);//message can't have \n.

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Reply-To: ". $email . "\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "From: " . $email . "\r\n";

if(mail("foo@test.com ", $subject, $comment, $headers)){
    //no error
    exit;
}

echo "Error sending mail";

?>

打字稿:

module OnlinePortfolio {
    export class ContactMe {

        public static Email() {
            $.ajax({
                url: "SendMail.php",
                type: "POST",
                data: {
                    "subject": $("#subject").text(), "email": $("#email").text(), "message": $("#comment").text()
                },
                success: function (data, status) {
                    if (data === "") {
                        alert("Message sent successfully");
                    }
                    else {
                        alert("There was an issue with sending your message");
                    }
                },
                error: function (xhr, status, errorDescription) {
                    console.error('Something happened while sending the request: ' + status + ' - ' + errorDescription);

                }
            });
        }
    }
}

HTML

<html>
    <form>
        Email: <input id="email" type="text" /><br />
        Subject: <input id="subject" type="text" /><br />
        Message:<br />
        <textarea id="comment" rows="15" cols="40"></textarea><br />
        <input type="submit" value="Submit" onclick="OnlinePortfolio.ContactMe.Email()">
    </form>
<html>

上面提供的电子邮件仅适用于此帖子。我是相当新的PHP但基于一些研究,我这样做应该工作。单击“提交”按钮时,我没有收到任何错误。我也打开了调试控制台,也没有出错。有人可以帮我理解为什么我没有收到电子邮件吗?

非常感谢提前!

3 个答案:

答案 0 :(得分:1)

请使用本地

中的PHPMailer(https://github.com/PHPMailer/PHPMailer))

答案 1 :(得分:0)

好像你正在使用PHP内置邮件功能。不幸的是,它不适用于localhost。 您需要从远程服务器运行它以使其工作。 如果你想从localhost运行它,请使用第三方库说phpmailer。

答案 2 :(得分:0)

1:localhost不能使用mail()发送电子邮件,首先上传到服务器。如果你必须在localhost中使用phpmailer(https://github.com/PHPMailer/PHPMailer) 2:你没有动作!在真正的HTML脚本中设置它