【发布时间】:2017-04-19 08:09:36
【问题描述】:
我有几个关于设置 PHP 邮件程序的问题...... 我的第一个问题是,PHP 文件/文件夹是否与我所有其他文件(.html、css 和 JS)位于同一个位置?
如果是这样,那么我确实需要一些帮助来设置它,或者我有点迷失了......我的 PHP 文件如下:
<?php
$emailTo = "myemail@yahoo.com"; // Enter your email for feedbacks here
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: ".$_POST['rsEmail']."\r\n";
if (!isset($_POST['rsSubject'])) {
$subject = "Contact Form Message"; // Enter your subject here
} else {
$subject = $_POST['rsSubject'];
}
reset($_POST);
$body = "";
$body .= "<p><b>Name: </b>".$_POST['rsName']."</p>";
$body .= "<p><b>Email: </b>".$_POST['rsEmail']."</p>";
$body .= "<p><b>Subject: </b>".$subject."</p>";
$body .= "<p><b>Message: </b>".$_POST['rsMessage']."</p>";
if( mail($emailTo, $subject, $body, $headers) ){
$mail_sent = true;
} else {
$mail_sent = false;
}
if(!isset($resp)){
echo json_encode($mail_sent);
}
?>
我相信我所拥有的相应 javascript 是:
function isValidEmail(emailAddress) {
var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i;
return pattern.test(emailAddress);
};
谢谢大家的帮助!意义重大:)
编辑:当表单填写正确时,它会说:“恭喜您的消息已发送”——这意味着这是一个有效的表单提交,我只是从未真正收到电子邮件。
编辑 2:我去我的 filezilla 尝试从那里编辑/查看 js 文件,我收到以下错误:
不完全确定这意味着什么(对这一切来说有点新鲜)。这也是我的表格:
<form class="rsForm" action="php/mailsender.php" method="post">
<div class="input-field">
<label>Name</label>
<input type="text" name="rsName" value="">
<span class="line"></span>
</div>
<div class="input-field">
<label>Email</label>
<input type="email" name="rsEmail" value="">
<span class="line"></span>
</div>
<div class="input-field">
<label>Subject</label>
<input type="text" name="rsSubject" value="">
<span class="line"></span>
</div>
<div class="input-field">
<label>Message</label>
<textarea rows="4" name="rsMessage"></textarea>
<span class="line"></span>
</div>
<span class="btn-outer btn-primary-outer ripple">
<input class="rsFormSubmit btn btn-lg btn-primary" type="submit" value="Send">
</span>
</form>
【问题讨论】:
-
您的
html怎么样? 从不依赖javascript来验证任何数据,因为这是基于客户端的,并且会受到用户的影响。在这种情况下,您如何处理form提交很重要。 -
action部分表示您将input数据发送到文件夹php和文件mailsender.php。因此,您上面显示的代码应该在该文件和文件夹中。如果确实如此,请查看@AdrianHiggins 给出的答案。一个快速的debug技巧也是传播随机消息,然后查看它不再去的地方。 -
是的,我有一个 php 文件夹,其中包含该目录中的确切文件(上图)。所以这似乎设置正确......
-
如果您愿意,我可以在此聊天中进一步帮助您:chat link
-
@Nytrix 仍然不让我,也许重新创建房间 - 或者新建一个?