php mail()函数

php mail()函数,php,email,smtp,Php,Email,Smtp,我是php编码新手,对网络不太了解(我两周前就开始了),所以请耐心听我说 最近我遇到了这个函数。首先,我只是在php.ini文件中使用未经任何修改的代码编写了简单的代码,当然它不起作用。所以我用谷歌搜索了原因;我发现,对于[mail function]中的linux,我们必须键入smtp服务器名称。我在yahoo.com有一个帐户,所以我键入了smtp.mail.yahoo.com,但这似乎不起作用。所以我又在谷歌上搜索了一下,才知道你们的ISP的smtp服务器是必需的。我的程序是一个简单的测试

我是php编码新手,对网络不太了解(我两周前就开始了),所以请耐心听我说

  • 最近我遇到了这个函数。首先,我只是在
    php.ini
    文件中使用未经任何修改的代码编写了简单的代码,当然它不起作用。所以我用谷歌搜索了原因;我发现,对于[mail function]中的linux,我们必须键入smtp服务器名称。我在yahoo.com有一个帐户,所以我键入了
    smtp.mail.yahoo.com
    ,但这似乎不起作用。所以我又在谷歌上搜索了一下,才知道你们的ISP的smtp服务器是必需的。我的程序是一个简单的测试程序,我希望通过php代码在收件人的收件箱中看到邮件

  • apache服务器(我用来响应php代码)也不支持smtp吗?阻止它发送消息的原因是什么?如果你觉得我需要阅读,请帮我链接

  • yahoo/gmail的smtp和我的isp的smtp有什么区别吗?或者是我的isp的smtp与yahoo的smtp通信以发送邮件(因为虽然我们的isp发生了变化,但我们仍然使用相同的yahoo帐户发送邮件)


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

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

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

  • 你误读了信息。该指令不需要服务器名称,它需要sendmail二进制文件的路径。在Linux下,您不能使用带有普通
    mail()
    功能的外部SMTP服务器

  • Apache是一个web服务器。If提供HTTP,但不提供任何其他服务(如SMTP或FTP)。可能您对Microsoft IIS感到困惑

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

  • 其他一些提示:

    • Linux服务器通常安装了本地MTA(邮件传输代理),因此您不必处理外部SMTP服务。不清楚你是否在触摸任何东西之前发送过电子邮件

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


    因此,我没有办法(除了使用)通过代码直接发送邮件……另请参见我刚才补充的第三个问题,这是正确的。您必须访问邮件服务器才能处理您的电子邮件并将其传递给预期的收件人。请参见我刚才添加的第三个问题这里有一个脚本(phpmailer),其中包含发送邮件的全部功能。PHP只需要一个SMTP服务器来发送邮件。无论是你的ISP、雅虎还是谷歌(你的ISP与雅虎的SMTP服务器无关)
    sendmail\u path
    应设置为服务器上的
    sendmail
    可执行文件(如果您不知道,请不要点击此按钮)。我确实尝试过发送电子邮件,但没有任何修改,但没有效果。如果我想从我的机器发送邮件,我必须使用isp的smtp服务器,但要从雅虎发送邮件,我必须使用雅虎的smtp…如果我在上有帐户,我可以通过代码访问雅虎的smtp服务器吗it@SnuS-如果您可以使用Outlook或Thunderbird发送邮件(我不知道雅虎的情况是否如此)你可以用PHP发送邮件。@alvaro…我想你不明白我只是在问,当我们通过登录Yahoo.com(正常方式)从我们的Yahoo id发送电子邮件时,我们使用Yahoo的smtp服务器……如果我把我的isp的smtp地址放在sendmail_路径中(在PHP.ini中)我将使用isp的smtp服务器