【问题标题】:How to check if PHP mail() is enabled?如何检查 PHP mail() 是否启用?
【发布时间】:2010-10-08 09:53:05
【问题描述】:

我需要在 Microsoft 服务器上安装 PHP 站点。出于某种原因,主机不允许该站点发送电子邮件。楼主给我发了一个代码示例……没用。

有没有办法检查服务器是否允许通过 php mail() 函数发送电子邮件?

在这个阶段,一切都是指指点点,我需要一些证据来向客户表明主机有问题。

【问题讨论】:

  • 您在此处发布问题之前尝试过吗?

标签: php email


【解决方案1】:

要检查您的服务器或 PHP 安装是否启用了邮件功能,请使用

<?php
if ( function_exists( 'mail' ) )
{
    echo 'mail() is available';
}
else
{
    echo 'mail() has been disabled';
}
?>

检查是否发送邮件

<?php 

$email = "youremail@gmail.com";
$subject =  "Email Test";
$message = "this is a mail testing email function on server";


$sendMail = mail($email, $subject, $message);
if($sendMail)
{
echo "Email Sent Successfully";
}
else

{
echo "Mail Failed";
}
?>

If the mail() function exist but mails not going, check if a mail transport agent (MTA)such as sendmail or postfix is installed on your server

如果你在 Linux 上:

试试;

$ dpkg -S `which sendmail`

在 Ubuntu 上安装 sendmail;

sudo apt-get install sendmail

https://www.digitalocean.com/community/questions/setting-up-email-with-sendmail

【讨论】:

    【解决方案2】:

    在 Linux 中,默认情况下 mail() 函数使用操作系统的 sendmail。

    在 Windows 中,默认情况下 mail() 不做任何事情,你必须设置它来编辑 php.ini 文件。

    您可以检查您的主机使用的 php.ini 中的哪些选项,编写一个 showinfo.php 文件,然后在其中写入:

       <?php
       phpinfo();
       ?>
    

    然后,如果您调用该网页,它将显示所有启用的选项。

    为了能够在 Windows 上发送邮件,这两个值的设置应该类似:

    SMTP = smtp.isp.net (the name or ip of your server)
    sendmail_from = me@isp.net
    

    XAMPP 平台附带了一个 mailtodisk 替代品,您可以将其设置为使用“fakemail”代替 sendmail,也可以通过 SMTP 连接。你可以拿XAMPP自带的sendmail文件夹,在IIS使用的php.ini中设置。

    【讨论】:

      【解决方案3】:

      这似乎是一个旧帖子,但您可以使用 function_exists() 函数,在使用之前检查该函数是否存在。

      【讨论】:

      • 该函数将存在,因为 PHP 4. 所以不是解决方案。
      猜你喜欢
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 2020-10-20
      相关资源
      最近更新 更多