无法通过 PHP 和 SSTP 发送邮件

  • 本文关键字:SSTP PHP php ssmtp
  • 更新时间 :
  • 英文 :


从我能找到的内容来看,我的代码中没有错误,我的本地ssmpt客户端已配置,我可以通过命令行发送邮件。但是没有邮件和错误来自php。就好像 php 永远不会命中这个本地邮件。我"确实"在我的php中设置了我的sendmail路径.ini并重新启动了apache。我不知道还能是什么?

<?php
require_once('config.php');
$attrs = array(PDO::ATTR_PERSISTENT => true);
$pdo = new PDO("mysql:host=localhost;dbname=".$dbname, $db_username, $db_password, $attrs);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$custlist = $pdo->prepare("SELECT customer_list.sms_num, carriers.carrieraddr, customer_list.contact_first,  customer_list.contact_last
    FROM carriers, customer_list
    WHERE send_id=send_code
    ORDER BY customer_list.sms_num");
#$carrierlist = $pdo->prepare("SELECT * FROM carriers");
if (isset($_POST['body'], $custlist)) {
    $custlist->execute();
    #var_dump($custlist);
    #var_dump($_POST['body']);
    while ($row = $custlist->fetch(PDO::FETCH_ASSOC)) {
        #$prefix = $row['sms_num'];
        #$suffix = $row['carrieraddr'];
        $to = 'brads@telecomm.com';
        $subject = 'the subject';
        $message = 'hello';
        $headers = 'From: admin@telecomm.com' . "rn" .
            'Reply-To: admin@telecomm.com' . "rn" .
            'X-Mailer: PHP/' . phpversion();
        mail($to, $subject, $message, $headers);
        #$body = $_POST['body'];
        #var_dump($prefix);
        #var_dump($suffix);
        #var_dump($_POST['body']);
    }
}
//$products = array();
$smscustobject = new ArrayObject($custlist);
#$smsarrayobject = new ArrayObject($carrierlist);
$pdo = null;
?>
<form action="" method="POST">
    Your Message Body <input name="body" type="text" />
    <input type="submit">
</form>

我遇到了同样的问题,在运行端口测试 PHP 脚本后发现我需要配置 linux(在我的例子中为 Centos(以允许 httpd 访问 TCP 端口使用命令行上的以下命令:

塞布勒 httpd_can_network_connect=1

或永久由

塞布尔 -P httpd_can_network_connect=1

注意:在我的机器上使用 -P 选项花了 2 分钟以上,所以请耐心等待

嘿,我的邮件命令有效。

我的情况是我能够从命令行向ISP的SMTP服务器(即端口25(发送邮件 mail.optusnet.com.au 但没有使用浏览器中运行的PHP脚本。

此外,通过运行与 SMTP 主机的 Telnet 会话,确保您的防火墙不会干扰 PHP。

例如 $telnet mail.optusnet.com.au 25

在您的情况下,我怀疑不是,因为您无法从命令行发送电子邮件。

我希望这有所帮助

我个人会选择像SwiftMailer这样的东西 - 它会定期更新并且相对简单http://swiftmailer.org/

删除 sendmail 路径并允许系统使用默认值可以修复它。

相关内容

  • 没有找到相关文章

最新更新