如何检查PHP mail()是否已启用?

Jas*_*onS 8 php email

我需要在Microsoft服务器上安装PHP站点.由于某种原因,主持人不允许该网站发送电子邮件.主持人给我发了一个代码样本......但是没有用.

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

在这个阶段,它完全是关于指点,我需要一些证据来向客户端显示主机有故障.

Asu*_*o12 10

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

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

检查它是否发送邮件

<?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
Run Code Online (Sandbox Code Playgroud)

如果你在 Linux 上:

尝试;

$ dpkg -S `which sendmail`
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 上安装 sendmail;

sudo apt-get install sendmail
Run Code Online (Sandbox Code Playgroud)

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


vic*_*era 5

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

在 Windows 中,默认情况下 mail() 不执行任何操作,您必须编辑 php.ini 文件来设置它。

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

   <?php
   phpinfo();
   ?>
Run Code Online (Sandbox Code Playgroud)

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

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

SMTP = smtp.isp.net (the name or ip of your server)
sendmail_from = me@isp.net
Run Code Online (Sandbox Code Playgroud)

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