php mail() function



我是php编码新手,不太了解网络(我2周前开始),所以请原谅我。

  1. 最近我碰到了mail()函数。首先,我只是在php.ini文件中使用mail()编写了简单的代码,没有任何修改,自然不起作用。所以我谷歌了一下原因;我发现,对于linux中的[邮件功能],我们必须在sendmail_path中键入smtp服务器名称。我在yahoo.com有一个帐户,所以我输入smtp.mail.yahoo.com,但这似乎不起作用。所以我又谷歌了一下,知道那里需要你的ISP的smtp服务器。我的程序是一个简单的测试之一,我很想看到邮件在地址的收件箱作为php的代码的结果。

  2. 也不apache服务器(我用来响应php代码)有smtp支持?是什么东西阻止它发送消息?如果你觉得我需要阅读,请帮助我链接。

  3. 是有区别的雅虎/gmail的smtp和我的isp的smtp,还是我的isp的smtp通信与雅虎的smtp发送邮件(因为虽然我们的isp改变,但我们继续发送邮件使用相同的雅虎帐户)?

  1. 你误读了信息。sendmail_path指令不需要服务器名,它需要sendmail二进制文件的路径。在Linux下,您不能使用具有纯mail()功能的外部SMTP服务器

  2. Apache是一个web服务器。它提供HTTP,但不提供任何其他服务(如SMTP或FTP)。

  3. 我不确定我理解这个问题,但是,现在,几乎没有人允许使用他的SMTP服务器发送第三方邮件。如果你想用@yahoo.com发送电子邮件,你必须使用雅虎的SMTP服务器。

附加提示:

  • Linux服务器通常安装了本地MTA(邮件传输代理),因此您不必处理外部SMTP服务。

  • 如果你想通过Yahoo或Gmail或类似的服务发送电子邮件,你最好使用一些第三方PHP库,如PEAR::Mail, PHPMailer或Swift Mailer。PHP本身不支持电子邮件身份验证

您应该联系您的ISP以获取SMTP服务器名称和凭据。许多SMTP服务器在发送邮件之前需要有效的登录凭据,以避免垃圾邮件发送者未经授权使用。

Apache可以与Sendmail等邮件服务器交互,但没有内置支持。

有关安装您自己的SMTP服务器的信息,请参阅Sendmail网站,或使用为您的操作系统或发行版提供的软件包进行安装。

最新更新