php - 为什么这个 php 脚本不给我发邮件?

标签 php

我正在运行 Head First 的 PHP 和 MySQL 第 1 章中的示例。我将这些文件放在 Head Fist 站点上的 apache 的/var/www 文件夹中,然后它就运行了。然而,为什么 php 的 mailto 不起作用?

编辑:顺便说一句,我正在使用 Ubuntu 10.04

我在脚本中添加了两条调试线:

$testmail = mail($to, $subject, $msg);
echo 'WAS IT MAILED? <br />'.$testmail;

为什么不打印 WAS IT MAILED?真?为什么不邮寄?

编辑:我正在向我的 gmail 地址发送邮件这一事实是否相关?

这是脚本:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Aliens Abducted Me - Report an Abduction</title>
</head>
<body>
  <h2>Aliens Abducted Me - Report an Abduction</h2>

<?php
  $name = $_POST['firstname'] . ' ' . $_POST['lastname'];
  $when_it_happened = $_POST['whenithappened'];
  $how_long = $_POST['howlong'];
  $how_many = $_POST['howmany'];
  $alien_description = $_POST['aliendescription'];
  $what_they_did = $_POST['whattheydid'];
  $fang_spotted = $_POST['fangspotted'];
  $email = $_POST['email'];
  $other = $_POST['other'];

  $to = 'antoniorueda18@gmail.com';
  $subject = 'Aliens Abducted Me - Abduction Report';
  $msg = "$name was abducted $when_it_happened and was gone for $how_long.\n" .
    "Number of aliens: $how_many\n" .
    "Alien description: $alien_description\n" .
    "What they did: $what_they_did\n" .
    "Fang spotted: $fang_spotted\n" .
    "Other comments: $other";

  $testmail = mail($to, $subject, $msg);
  echo 'WAS IT MAILED? <br />'.$testmail;

  echo 'Thanks for submitting the form.<br />';
  echo 'You were abducted ' . $when_it_happened;
  echo ' and were gone for ' . $how_long . '<br />';
  echo 'Number of aliens: ' . $how_many . '<br />';
  echo 'Describe them: ' . $alien_description . '<br />';
  echo 'The aliens did this: ' . $what_they_did . '<br />';
  echo 'Was Fang there? ' . $fang_spotted . '<br />';
  echo 'Other comments: ' . $other . '<br />';
  echo 'Your email address is ' . $email;
?>

</body>
</html>

这是 html 表单:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Aliens Abducted Me - Report an Abduction</title>
  <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
  <h2>Aliens Abducted Me - Report an Abduction</h2>

  <p>Share your story of alien abduction:</p>
  <form method="post" action="report.php">
    <label for="firstname">First name:</label>
    <input type="text" id="firstname" name="firstname" /><br />
    <label for="lastname">Last name:</label>
    <input type="text" id="lastname" name="lastname" /><br />
    <label for="email">What is your email address?</label>
    <input type="text" id="email" name="email" /><br />
    <label for="whenithappened">When did it happen?</label>
    <input type="text" id="whenithappened" name="whenithappened" /><br />
    <label for="howlong">How long were you gone?</label>
    <input type="text" id="howlong" name="howlong" /><br />
    <label for="howmany">How many did you see?</label>
    <input type="text" id="howmany" name="howmany" /><br />
    <label for="aliendescription">Describe them:</label>
    <input type="text" id="aliendescription" name="aliendescription" size="32" /><br />
    <label for="whattheydid">What did they do to you?</label>
    <input type="text" id="whattheydid" name="whattheydid" size="32" /><br />
    <label for="fangspotted">Have you seen my dog Fang?</label>
    Yes <input id="fangspotted" name="fangspotted" type="radio" value="yes" />
    No <input id="fangspotted" name="fangspotted" type="radio" value="no" /><br />
    <img src="fang.jpg" width="100" height="175"
      alt="My abducted dog Fang." /><br />
    <label for="other">Anything else you want to add?</label>
    <textarea id="other" name="other"></textarea><br />
    <input type="submit" value="Report Abduction" name="submit" />
  </form>
</body>
</html>

最佳答案

来自 mail() 的 PHP 文档:

It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination.

此外:mail() 邮件可能已被接受到邮件队列中,但由于各种原因被退回。最好的办法是检查您的邮件日志——这会因您的操作系统和 sendmail 程序而异。

当从 Web 服务器发送邮件时,邮件可能被归类为垃圾邮件 - 根据接收邮件服务器的配置,这可能导致邮件被发送到垃圾邮件文件夹或被自动删除。

关于php - 为什么这个 php 脚本不给我发邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3403042/

相关文章:

php - MySQL排名如果为空则显示空白页

php - 使用 YouTube/GooglePlus API 查找 YouTube 用户名

php - 如何在mysql中搜索?

php - 在PHP作业方面需要帮助- friend 匹配算法

php - 防止加载带有 .php 文件扩展名的页面(仅在没有它的情况下加载)

php - HTML5 音频流

php - 如何更改 woocommerce 价格样式但仅在当前产品的单个产品页面上

php - 加权投票算法

php - 在实时场景中使用 Node JS 和 PHP

java - 在 Android 中上传图像和文本文件时上传视频不起作用