【问题标题】:how to send email from Apache server by PHP script如何通过 PHP 脚本从 Apache 服务器发送电子邮件
【发布时间】:2012-01-22 07:30:01
【问题描述】:

我已经在我的 Windows 7 PC 上安装了 Apache 和 PHP。我现在学习PHP。以下是我发送电子邮件的 PHP 脚本。

<?php
    if(isset($_REQUEST['email']))
    {
        $email = $_REQUEST['email'];
        $subject = $_REQUEST['subject'];
        $message = $_REQUEST['message'];
        mail("padhy.surya@gmail.com","$subject","$message","From:","$email");
        echo "Thank you for using the email !!!";
    }
    else
    {
        echo "Mail is not set properly. Please fill the form properly";
    }
?>

我正在使用 html 表单来获取发送电子邮件所需的参数。以下是我在发送电子邮件时遇到的错误。

警告:mail() [function.mail]:无法连接到邮件服务器 “localhost”端口 25,验证您的“SMTP”和“smtp_port”设置 php.ini 或使用 ini_set() C:\WebLearn\Apache-2.2\htdocs\SimpleWebsite\contact.php 在第 7 行

我需要在 php.ini 文件或 httpd.conf 中设置什么吗?如果是,如何配置?我是否需要在我的 PC 上安装额外的 SMTP 服务器来发送电子邮件?请建议从我的本地 PC 发送电子邮件的必要步骤。

【问题讨论】:

    标签: php apache email


    【解决方案1】:

    消息说它正在尝试将电子邮件发送到 localhost:25,但那里没有任何东西在收听。

    PHP 不能直接通过电子邮件发送“Internet”。消息必须发送到 Postfix、Sendmail 或 SSMTP 等邮件服务器程序,然后由后者将其中继到适当的目的地。

    您必须安装和配置邮件服务器程序,并设置 PHP 以通过 php.ini 使用它。我相信您还可以选择将 PHP 配置为使用 Sendmail 二进制文件而不是 SMTP 传递。

    【讨论】:

    • 我也可以为 SMTP 服务配置 apache 服务器吗?或者我需要为此安装任何其他 SMTP 服务器?有没有免费的 SMTP 服务器可用?
    • @Surjya Narayana Padhi:不,Apache 是 HTTP 服务器,而不是 SMTP 服务器。我已经在回复中提到了三个免费的 SMTP 服务器。
    • 非常感谢。我打算使用 SendMail。能否请您告诉我设置 PHP 以使用我的 sendMail 程序的步骤?
    • 我下载了 Windows 的免费 SMTP 服务器。现在它在端口 25 上工作。但是当我运行我的 php 脚本时,它显示如下消息:警告:mail() [function.mail]:SMTP 服务器响应:550 无效收件人:padhy.surya@gmail.com
    • @SurjyaNarayanaPadhi:您将不得不配置邮件服务器以允许非本地收件人发送邮件。开箱即用,邮件服务器不会将邮件“中继”到任意域(如 gmail.com)。您还应该确保邮件服务器仅侦听来自本地主机的邮件 - 否则您将运行所谓的“开放中继”,这会很糟糕(其他人可能会使用您的机器发送垃圾邮件)。
    猜你喜欢
    • 2017-05-19
    • 2015-02-19
    • 2014-06-17
    • 2018-10-17
    • 1970-01-01
    • 2015-03-21
    • 2011-04-28
    • 2018-03-15
    • 2013-11-21
    相关资源
    最近更新 更多