【问题标题】:PHP Contact Form not sending (long loading time then reports to have sent but no mail)PHP联系表未发送(加载时间长,然后报告已发送但没有邮件)
【发布时间】:2013-08-09 19:46:41
【问题描述】:

我使用的代码与这个 stackoverflow 问题 Simple PHP Contact Form Not Sending 相同,但他们的问题是通过检查他们的垃圾邮件框来解决的,因为我的是空的。我正在运行 Ubuntu,已经安装了 PHP,从 Apache 2 本地运行网页。我唯一的提示是 Chrome 可能会加载一分钟,然后我会返回一个“谢谢”PHP 页面。我应该先尝试什么?

html

<form action="contactus.php" method="POST" class="create">
 <fieldset>
<legend align="center">Please fill out details below and click "Submit"</legend>
<div>
 <label for="fullname" class="fixedwidth">Full Name</label>
 <input type="text" name="fullname" id="fullname" class="input2"/>
</div><br/>
<div>
 <label for="email" class="fixedwidth">Email</label>
 <input type="text" name="email" id="email" class="input2"/>
</div><br/>
  <div>
 <label for="subject" class="fixedwidth">Subject</label>
 <input type="text" name="subject" id="subject" class="input2"/>
</div><br/>
<div>
<label for="details" class="fixedwidth">Body</label>
 <textarea id="details" name="details" cols="62" rows="20"></textarea>
</div>
<div class="buttonarea">
    <input type="submit" name="submit" id="submit" value="Submit"/>
</div>

</fieldset>
</form>

php

<?php 
$fullname = $_POST['fullname'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$details = $_POST['details'];
$formcontent = "From: $fullname \n Message: $details";
$recipient = "johndoe1@email.com";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
?>

【问题讨论】:

标签: php email contact contact-form


【解决方案1】:

也许这会解决你的问题:

在本地安装 SMTP 服务器或使用外部服务器。
正确配置您的 php.ini 以使用此 SMTP 服务器。

postfix、qmail、sendmail 是 SMTP 服务器的示例。
我觉得qmail是最轻量级的。
swiftmailer 只是一个用于邮件的 PHP 库,它使编程工作变得更容易,而不是服务器。 swiftmailer 是用 PHP 编写的,但 SMTP 服务器在套接字层上工作,据我所知,它们是用 c 或 c++ 等语言编写的。

【讨论】:

  • 谢谢,您对我收到的其他建议有何看法。我猜postfix是一个SMTP服务器,所以我应该使用postfix?我不需要 swiftmailer 之类的东西?
  • 我已经安装了 postfix。当我从 Localhost 运行 SMPT 时,我不必修改 php.ini 是真的吗?我现在返回了相同的“thankyou”php,但这次没有过度加载。所以有些事情正在发生。我一直在玩不同的后缀配置,但仍然没有。
  • 这是我可以在 .ini 中找到的唯一 SMPT 实例,但我认为它不适用于我,因为我正在使用 linux,并且似乎表明这些详细信息适用于 windows[邮件功能] ;仅适用于 Win32。 ; php.net/smtp SMTP = 本地主机; php.net/smtp-port smtp_port = 25 @Amir Noori
  • 对不起,我自己没有配置和管理邮件服务器。所以我帮不了你更多。网上找教程,肯定能解决的。但是如果您仍然有问题,您可以使用 Google 或其他免费的 SMTP 服务器来发送带有 PHP 脚本的邮件。祝你好运。
【解决方案2】:

请在您的 ubuntu 服务器上安装和配置 postfix,然后使用 php mail() 函数发送电子邮件。

【讨论】:

  • 把这个放在 cmets 中。
  • @Neo 谢谢,我刚刚安装了没有配置的 postfix,现在我收到一条“错误”PHP 消息,而不是通常的加载和“谢谢”。现在我只需要弄清楚如何配置这个东西。如果我能正常工作,我会回来的。
  • @Neo 关于需要配置哪些参数才能使出站邮件正常工作的任何提示?
猜你喜欢
  • 1970-01-01
  • 2013-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-04
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
相关资源
最近更新 更多