我正在尝试使用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但基于一些研究,我这样做应该工作。单击“提交”按钮时,我没有收到任何错误。我也打开了调试控制台,也没有出错。有人可以帮我理解为什么我没有收到电子邮件吗?
非常感谢提前!
答案 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脚本中设置它