【问题标题】:PHP mail Error ReportingPHP 邮件错误报告
【发布时间】:2017-06-16 03:50:46
【问题描述】:

我有以下代码来测试网站是否可以通过php发送邮件:

<?php 
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
$from = "emailtest@YOURDOMAIN";
$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

当我运行脚本时出现以下错误:

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

我的问题是为什么网站已经上线时显示 C:\ 文件目录的错误?

作为参考,此网站在 Microsoft IIS 服务器上运行,并且有 SSL,如果这有什么不同的话。

【问题讨论】:

    标签: php email error-handling


    【解决方案1】:

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

    默认情况下,它会尝试连接到 localhost,但网络服务器显然没有运行 SMTP 服务器,因此您应该向您的提供商询问要使用的正确 SMTP,并将其设置为:

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

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

    【讨论】:

    • 如果是gmail呢?我可以在 php 文件中使用 ini_set() 而不必担心更新 php.ini 吗?问题是我没有访问网络服务器的权限,而且这样做的人很困难。
    • 如果您需要 SMTP 身份验证,则无法使用 mail() 的 PHP 本地实现来完成,您必须通过一个 PHP 库来为您完成所有工作,有一个在Zend 框架
    猜你喜欢
    • 2015-06-06
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多