我现在已经看了几个小时了,我无法弄清楚为什么这不会起作用。我尝试使用邮件功能发送电子邮件。出于某种原因,这个页面在由iPage托管时起作用,但不是由Godaddy托管。这是什么原因?
PHP:
<?php
// Run code if button pressed
if (isset($_POST['submit'])) {
// Makes sure all fields are filled
if (!$_POST['name'] | !$_POST['email'] | !$_POST['message'] ) {
?><script>alert('You forgot to fill in a field');window.location = "http://example.com/contact.php";</script>
<?php
exit;
}
// From the form
$name = trim(strip_tags($_POST['name']));
$email = trim(strip_tags($_POST['email']));
$message = htmlentities($_POST['message']);
$to = 'email@gmail.com';
$subject = "Contact form submitted!";
$body = <<<HTML
$message
HTML;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
// send the email
mail($to, $subject, $body, $headers);
?><script>alert('Thanks! I will try to get back to you as soon as possible.');window.location = "http://example.com/contact.php";</script><?php
}
?>
答案 0 :(得分:0)
您需要查看if condition
您需要||
才能OR
<?php
// Run code if button pressed
if (isset($_POST['submit'])) {
// Makes sure all fields are filled
if (empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message']) ) {
?>
<script>alert('You forgot to fill in a field');
window.location = "http://example.com/contact.php";
</script>
<?php
exit;
}
您正在设置来自用户输入的From
电子邮件ID $email
,这意味着它未在您的服务器上配置,将Reply-To
标题添加到$ email < / p>
$headers = "From: youremail@yourdomain.com \r\n";
$headers .= 'Reply-To: '.$email. "\r\n" .
$headers .= "Content-type: text/html\r\n";
最后请注意,我建议您使用Swift Mailer
或PHP Mailer
来简化
答案 1 :(得分:0)
对于在GoDaddy服务器上发送电子邮件时遇到问题的人,这里有什么问题:
为了防止垃圾邮件,如果您使用某个域名,GoDaddy的服务器拒绝发送您的邮件(请参阅下面的列表)。因此,要解决此处的具体问题,我必须更改我正在使用的域名,因此$to = 'email@gmail';
现在是$to = 'email@something-else.com';
以下是GoDaddy的explanation以及列入黑名单的域名列表:
表格在网站上很受欢迎;他们让客户与您分享他们的信息,无论是通讯还是注册账户。通常,这些表格通过电子邮件确认访客提交给您或提交信息的访客。您是否知道所有电子邮件,即使是从主机帐户发送的,也必须在“发件人”值中输入信息?
您也可以将From值设为特定的电子邮件地址。这使您可以为您的客户创建具有专业外观的电子邮件,或者为您自己轻松分类的内容。
但是,我们必须小心用户可以指定的From值来对抗垃圾邮件尝试。以下是我们不允许客户将其用作表单的From值的电子邮件地址域名列表:
如果您的电子邮件表单使用其中一个域名作为其发件人电子邮件地址,我们的服务器将不会发送该电子邮件。