PHP - 使用邮件功能从表单发送电子邮件

时间:2014-06-15 00:53:02

标签: php email

我现在已经看了几个小时了,我无法弄清楚为什么这不会起作用。我尝试使用邮件功能发送电子邮件。出于某种原因,这个页面在由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
}
?>

2 个答案:

答案 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 MailerPHP Mailer来简化

答案 1 :(得分:0)

对于在GoDaddy服务器上发送电子邮件时遇到问题的人,这里有什么问题:

为了防止垃圾邮件,如果您使用某个域名,GoDaddy的服务器拒绝发送您的邮件(请参阅下面的列表)。因此,要解决此处的具体问题,我必须更改我正在使用的域名,因此$to = 'email@gmail';现在是$to = 'email@something-else.com';

以下是GoDaddy的explanation以及列入黑名单的域名列表:

  

表格在网站上很受欢迎;他们让客户与您分享他们的信息,无论是通讯还是注册账户。通常,这些表格通过电子邮件确认访客提交给您或提交信息的访客。您是否知道所有电子邮件,即使是从主机帐户发送的,也必须在“发件人”值中输入信息?

     

您也可以将From值设为特定的电子邮件地址。这使您可以为您的客户创建具有专业外观的电子邮件,或者为您自己轻松分类的内容。

     

但是,我们必须小心用户可以指定的From值来对抗垃圾邮件尝试。以下是我们不允许客户将其用作表单的From值的电子邮件地址域名列表:

  • gmail.com
  • aol.com
  • aim.com
  • yahoo.com
  • hotmail.com
  • live.com
  • msn.com
  

如果您的电子邮件表单使用其中一个域名作为其发件人电子邮件地址,我们的服务器将不会发送该电子邮件。