【问题标题】:Email script reports success, but email does not appear in my inbox电子邮件脚本报告成功,但电子邮件未出现在我的收件箱中
【发布时间】:2011-09-06 05:33:23
【问题描述】:

我创建了一个链接到这样的 PHP 页面的表单:

<form method="get" action="contact.php">
<p>Nome:</p> <input type="text" name="name" class="name" /><br>
<p>E-mail :</p> <input type="text" name="mail" class="mail" /><br>
<p>Website:</p> <input type="text" name="website" class="website" /><br>
Mensagem: <textarea name="message" class="message" rows="2" cols="20"></textarea>        
<input type="submit" value="Enviar" class="submit" />
</form>

PHP 页面:

<?php 
$field_name = $_GET['name'];
$field_email = $_GET['mail'];
$field_website = $_GET['website'];
$field_message = $_GET['message'];
$mail_to = '__munged__@gmail.com';
$subject = 'Message from a site visitor ' . $field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = "From: $field_email\r\n";
$headers .= "Reply-To: $field_email\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">

    alert('Thank you for the message. We will contact you shortly.');

    window.location = 'index.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
    // Print a message
    alert('Message failed. Please, send an email to __munged__@template-help.com');
window.location = 'index.html';
</script>
<?php
}?>

我似乎无法找出问题所在。提前致谢。

【问题讨论】:

  • 尝试在提交中添加一些 onClick 并将脚本数据放入函数中。
  • @Max — 嗯。什么?该脚本被添加到页面以响应 PHP 的 mail() 的返回值为 true。添加 onclick 没有帮助。
  • 脚本是否托管在 Windows 机器上?
  • 是的,我有一台 Windows 机器,但我正在在线测试所有这些,在一个不在本地主机中的网络主机中
  • 在声明 $subject 时,字符串、点运算符和 field_name 变量之间有不必要的空格。

标签: php html email forms


【解决方案1】:

如果您可以访问网络主机,我会说尝试在位于 /var/log/ 的 Ubuntu 服务器上查找 apache2.log 文件,但我不知道这适合您。无论如何,如果你发现了这个,你可以查看日志中的最后一条记录,看看 apache 在执行这个命令期间是否抛出了一个错误,否则这个错误对用户是隐藏的。听起来邮件服务器可能有问题。你有一个设置吗?您使用的是 sendmail 还是一些变体?

我最近在发送邮件时遇到了一些相关的问题,这可能会对你有所帮助(但正如我之前所说的,它适用于 linux)

php5 mail() function sendmail error

【讨论】:

  • 我之前已经使用过这家邮件服务器和网络托管公司,但它确实有效,这就是我无法理解的原因:S
【解决方案2】:

检查php.ini 文件的[mail function] 部分中的 smtp 服务器设置。邮件服务器可能成功接收到消息,否则会返回错误。我会尝试使用不同的邮件服务器。

【讨论】:

    【解决方案3】:

    这是一个简单的方法。

    从主题中删除未使用的空间。 不要使用带有 $field_name 等主题的动态变量。

    使用php5@mail函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      相关资源
      最近更新 更多