【问题标题】:PHP Warning: include_once(Net/SMTP.php): failed to open streamPHP 警告:include_once(Net/SMTP.php):无法打开流
【发布时间】:2017-12-29 23:43:30
【问题描述】:

我想使用 Gmail 发送电子邮件。为此,我只需运行以下命令

pear install Mail Mail_Mime

我的php文件(filename.php)代码如下

<?php
  require_once "Mail.php";
  $from = 'from@gmail.com';
  $to = 'to@gmail.com';
  $subject = 'Hi!';
  $body = "Hi,\n\nHow are you?";
  $headers = array(
      'From' => $from,
      'To' => $to,
      'Subject' => $subject
  );
  $smtp = Mail::factory('smtp', array(
          'host' => 'ssl://smtp.gmail.com',
          'port' => '465',
          'auth' => true,
          'username' => 'from@gmail.com',
          'password' => 'password'
      ));
  $mail = $smtp->send($to, $headers, $body);
  if (PEAR::isError($mail)) {
      echo('<p>' . $mail->getMessage() . '</p>');
  } else {
      echo('<p>Message successfully sent!</p>');
  }
?>

当我使用下面的命令运行这个“filename.php”时

php filename.php

我收到以下错误

PHP Warning:  include_once(Net/SMTP.php): failed to open stream: No such file or directory in /usr/share/pear/Mail/smtp.php on line 365
PHP Warning:  include_once(): Failed opening 'Net/SMTP.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /usr/share/pear/Mail/smtp.php on line 365
PHP Fatal error:  Class 'Net_SMTP' not found in /usr/share/pear/Mail/smtp.php on line 366

我使用的是 CentOS 7。

【问题讨论】:

  • 消息很清楚,找不到文件Net/SMTP.php
  • @Antony 我可以看到smtp.phpinsdei /usr/share/pear/Mail/
  • 你的 PEAR 目录是否在 include_path 中?
  • 您应该删除标签phpmailer,因为您实际上使用的是Pears Mail 类,而不是phpmailer(这是它自己的邮件库)。
  • @ÁlvaroGonzález 如何检查,PEAR 目录在 include_path 中?

标签: php pear mail-mime


【解决方案1】:

现在它对我有用。我只是使用以下步骤来解决这个问题:

1. pear upgrade --force --alldeps http://pear.php.net/get/PEAR-1.10.1
2. pear clear-cache
3. pear update-channels
4. pear upgrade
5. pear upgrade-all
6. pear install Auth_SASL
7. pear install pear/Net_SMTP

之后一切正常。

谢谢大家。

【讨论】:

  • 在哪里使用这个?
  • 你拯救了我的一天...... :)
  • @CecilPaul 这些是 linux 命令。你在服务器上运行它们
【解决方案2】:

对于 Windows 机器 -

Net_SMTP 是 SMTP 协议的一种实现。您需要安装该扩展程序。通过在 CMD 中运行以下命令。

pear install Net_SMTP

确保您已在环境路径中安装和设置 pear。

【讨论】:

  • 谢谢@Quickee,您的命令解决了我的问题!非常感谢。
猜你喜欢
  • 2012-07-07
  • 2020-04-11
  • 1970-01-01
  • 2011-07-16
  • 2019-09-25
  • 2017-09-14
  • 1970-01-01
  • 2023-03-04
相关资源
最近更新 更多