【问题标题】:mail() [function.mail]: "sendmail_from" not set in php.ini on my apache servermail() [function.mail]: "sendmail_from" 未在我的 apache 服务器上的 php.ini 中设置
【发布时间】:2013-10-10 05:24:32
【问题描述】:

下午,我最近建立了自己的本地服务器,分别执行 apache、mysql 和 php,以反对获取 WAMP 和 XAMPP 等可用产品。我在 php 中使用 mail() 函数时遇到了一个问题。就是这样:

mail() [function.mail]: "sendmail_from" not set in php.ini

我尝试进入 php.ini 文件进行配置,但没有希望。据我了解,我需要设置我的 SMTP?但是,我不知道如何执行此操作,也不想在没有相关知识的情况下继续尝试。

谁能给我一些详细的分步说明,请告诉我如何设置它,以便我在 php 中的 mail() 函数在我的本地服务器上工作得很好?

提前致谢, 里斯

【问题讨论】:

  • 你的问题太含糊了。 sendmail_from 用于设置默认的“发件人”电子邮件地址。是什么阻止您编辑php.ini 文件?它与问题的其余部分有什么关系?

标签: php apache email


【解决方案1】:

您缺少应用于您的消息的From 标头。

您可以通过指定mail() 函数的第四个参数$headers 来做到这一点:

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
       'Reply-To: webmaster@example.com';

mail($to, $subject, $message, $headers);

【讨论】:

  • 您好,感谢您的快速回复。正如你所解释的,我可以通过标题来完成,但是当我通过 WAMP 运行它时,它不需要这个参数。我假设 WAMP 带有一个 SMTP 服务器。我这样做的唯一问题是很快它将被上传到我公司的服务器并且邮件在那里设置。如果我在商业公司服务器上运行该站点,则邮件可以正常工作。我的本地服务器需要一个 SMTP 服务器
  • WAMP 在 php.ini 中带有预配置的 sending_from 选项;此选项会自动粘贴到 mail() 函数中的 From 标头,因此问题不会出现在 WAMP 中
  • 好吧,我基本上需要一种方法来在我创建的本地服务器上执行此操作,因为当我将标头的代码上传到我们的托管服务器时,它不需要。每次我做一个包含邮件功能的网站时,我宁愿不必将代码放入,然后将其删除等。
  • 查看回答stackoverflow.com/a/6941390/301663如何为mail()功能配置SMTP。
【解决方案2】:

我觉得你应该下载 sendmail 实用程序来发送邮件,它会很容易配置。

Sendmail download link

  1. 下载 sendmail.zip 并解压缩其内容
  2. 将 sendmail.exe 和 sendmail.ini 复制到驱动器上的\usr\lib Unix 应用程序已安装
  3. 例如。如果您的应用程序安装在c:\bugzillasendmail.exesendmail.ini 需要复制到c:\usr\lib\sendmail.exec:\usr\lib\sendmail.ini。配置smtp server 和默认域 发送邮件.ini

在这里sendmail.ini,您可以在其中配置您的邮件服务器设置和sending_from, replymail 一个文件中的所有内容。

希望对你有帮助。

【讨论】:

    【解决方案3】:

    感谢大家的回复。最后,我发现我在 php 的配置文件中使用错误的语法很傻。最后我将它与我的工作 SMTP 服务器连接起来,所以一切都很好。感谢您的回复。

    【讨论】:

      猜你喜欢
      • 2020-04-05
      • 2015-03-17
      • 2014-03-30
      • 2012-04-16
      • 2011-10-24
      • 1970-01-01
      • 2013-07-02
      • 2020-09-16
      相关资源
      最近更新 更多