2017-06-16 93 views
1

我有以下代码来测试如果网站能够通过PHP发送邮件:PHP邮件错误报告

<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 
$from = "[email protected]"; 
$to = "YOUREMAILADDRESS"; 
$subject = "PHP Mail Test script"; 
$message = "This is a test to check the PHP Mail functionality"; 
$headers = "From:" . $from; 
mail($to,$subject,$message, $headers); 
echo "Test email sent"; 
?> 

我已经上传的PHP文件www.mywebsite.com/data/iq/testing-email .PHP

当我运行该脚本,我得到以下错误:

警告:电子邮件():无法连接在“localhost”的端口25的邮件服务器,验证您的“SMTP”和“SMTP_PORT”设定php.ini或在第9行的C:\ mywebsite.com \ data \ iq \ test-email.php中使用ini_set()

我的问题是为什么当网站已经存在时显示C:\ file目录的错误?

仅供参考,本网站在Microsoft IIS服务器上运行,并且具有SSL,如果有任何区别的话。

回答

2

当您使用mail()时,您的PHP脚本会尝试连接到外部SMTP来发送您的电子邮件,因此您必须配置一个有效的邮件。

默认情况下,它会尝试连接到本地主机,但web服务器似乎没有运行SMTP服务器,所以你应该问你的供应商正确的SMTP使用,并与设置:

ini_set('SMTP','smtp.yourprovider.cxm'); 
ini_set('smtp_port',25); 

关于你的第二个问题,C:\ mywebsite.com \可能是你的文件托管的服务器文件夹,所以它对我来说看起来很正常。

+0

图例,谢谢。 – user3679330

+0

另外,如果它是Gmail吗?我可以在php文件中使用ini_set(),而不必担心更新php.ini吗? 问题是我没有访问Web服务器和谁做的人是困难的。 – user3679330

+0

如果你需要SMTP认证,你不能使用PHP本地实现的mail(),你必须通过一个PHP库来为你做所有的工作,在Zend Framework中有一个很好的工作 – Johnny