我正在尝试通过SMTP发送简单邮件的代码,我读到我必须使用类 phpmailer
并在服务器根目录上安装pear引擎,我下载了一些不同的文件来验证SMTP,但总是需要更多的文件我没有或不能被指控实际上,PHP错误显示如下:
警告:require_once():open_basedir限制生效 . 文件(/opt/plesk/php/7.1/share/pear/PEAR.php)不在/ var /中的允许路径中:(/ var / www / vhosts / necotec.es /:/ tmp /) www / vhosts / necotec.es / httpdocs / prueba_smtp / Mail.php第48行警告:require_once(/opt/plesk/php/7.1/share/pear/PEAR.php):无法打开流:/中不允许操作第48行的var / www / vhosts / necotec.es / httpdocs / prueba_smtp / Mail.php致命错误:require_once():无法打开所需的'PEAR.php'(include_path =' . :/ opt / plesk / php / 7.1 /第48行/var/www/vhosts/necotec.es/httpdocs/prueba_smtp/Mail.php中的share / pear')
我不知道是否找不到或者是一个permision问题,默认文件在此服务器中需要644个permisions . 任何线索都会有所帮助 .
1 回答
错误意味着某些文件或脚本位于允许的目录之外 . 在您的情况下,此文件是
/opt/plesk/php/7.1/share/pear/PEAR.php
.在Plesk中,你可以禁用open_basedir(不安全): Domains > example.com > PHP Settings 并将open_basedir设置为
none
.另一种方法(更安全)是将open_basedir设置为
{WEBSPACEROOT}{/}{:}{TMP}{/}:/opt/plesk/php/7.1
我能够使用以下步骤在我的测试服务器(Plesk 17.5-17.8)上配置PHPMailer:
使用SSH登录服务器
去了域文档根目录:
# cd /var/www/vhosts/example.com/httpdocs/
运行从github获取的命令:
# composer require phpmailer/phpmailer
因此"vendor"文件夹出现在"httpdocs"文件夹中 .
基于0-send-email-plesk.php创建了一个testmail.php文件:
它假定使用本地邮件服务器并且邮件服务器使用Default Plesk自签名证书: Plesk > Tools & Settings > SSL/TLS Certificates > Certificate for securing mail