我一直试图让PHPMailer工作一周左右。起初我没有使用SMTP,但由于PHP权限,我不得不改变它。
由于正在使用的电子邮件地址似乎是通过Gmail购买的(它有不同的域名,而不是@ gmail.com),我认为最好使用Google的Gmail SMTP服务。 (这里解释https://github.com/PHPMailer/PHPMailer/wiki/Using-Gmail-with-XOAUTH2)
由于缺乏经验并且没有任何方法可以通过命令行接近我的主机,因此我获得了所有必需的软件包,其中包含本地安装的composer版本,并通过FTP将所有依赖项复制到我的主机。我当前的文件夹结构现在是这样的:
/phpmailer
/phpmailer/extras/
/phpmailer/language/
/phpmailer/vendor/
/phpmailer/vendor/composer/
/phpmailer/vendor/eloquent/
/phpmailer/vendor/guzzlehttp/
/phpmailer/vendor/league/
/phpmailer/vendor/paragonie/
/phpmailer/vendor/phpmailer/
/phpmailer/vendor/psr/
/phpmailer/vendor/autoload.php
但是,我一直收到以下错误:
致命错误:Class' League \ OAuth2 \ Client \ Provider \ Google'在第55行的/domain/phpmailer/class.phpmaileroauthgoogle.php中找不到
看起来好像缺少一个include或者需要某个地方,所以我尝试添加require(' vendor / autoload.php');在我的PHP中处理应该启动邮件进程的表单,但它似乎没有解决任何问题。而且我也不希望在/ phpmailer /中添加类似的东西是必要的。
我返回的其余日志如下所示:
2017-03-26 10:23:52 SERVER - >客户:220 smtp.gmail.com ESMTP e16sm10314377wra.62 - gsmtp 2017-03-26 10:23:52客户 - >服务器:EHLO www.domain.com 2017-03-26 10:23:53服务器 - >客户:250-smtp.gmail.com为您服务,[2a0b:7280:100:0:447:56ff:fe00:207b] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 2017-03-26 10:23:53客户 - >服务器:STARTTLS 2017-03-26 10:23:53服务器 - >客户端:220 2.0.0准备启动TLS 2017-03-26 10:23:53客户端 - >服务器:EHLO www.domain.com 2017-03-26 10:23:53服务器 - >客户:250-smtp.gmail.com为您服务,[2a0b:7280:100:0:447:56ff:fe00:207b] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH 250- ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8
这似乎不是身份验证的问题。
这就是composer.json中的内容:
{
"name": "phpmailer/phpmailer",
"type": "library",
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
"authors": [
{
"name": "Marcus Bointon",
"email": "phpmailer@synchromedia.co.uk"
},
{
"name": "Jim Jagielski",
"email": "jimjag@gmail.com"
},
{
"name": "Andy Prevost",
"email": "codeworxtech@users.sourceforge.net"
},
{
"name": "Brent R. Matzelle"
}
],
"require": {
"php": ">=5.0.0",
"phpmailer/phpmailer": "^5.2",
"league/oauth2-client": "^2.2",
"league/oauth2-google": "^2.0"
},
"require-dev": {
"doctrine/annotations": "1.2.*",
"jms/serializer": "0.16.*",
"phpdocumentor/phpdocumentor": "2.*",
"phpunit/phpunit": "4.8.*",
"symfony/debug": "2.8.*",
"symfony/filesystem": "2.8.*",
"symfony/translation": "2.8.*",
"symfony/yaml": "2.8.*",
"zendframework/zend-cache": "2.5.1",
"zendframework/zend-config": "2.5.1",
"zendframework/zend-eventmanager": "2.5.1",
"zendframework/zend-filter": "2.5.1",
"zendframework/zend-i18n": "2.5.1",
"zendframework/zend-json": "2.5.1",
"zendframework/zend-math": "2.5.1",
"zendframework/zend-serializer": "2.5.*",
"zendframework/zend-servicemanager": "2.5.*",
"zendframework/zend-stdlib": "2.5.1"
},
"suggest": {
"league/oauth2-google": "Needed for Google XOAUTH2 authentication"
},
"autoload": {
"classmap": [
"class.phpmailer.php",
"class.phpmaileroauth.php",
"class.phpmaileroauthgoogle.php",
"class.smtp.php",
"class.pop3.php",
"extras/EasyPeasyICS.php",
"extras/ntlm_sasl_client.php"
]
},
"license": "LGPL-2.1"
}
我在这里错过了什么吗?
答案 0 :(得分:0)
(编辑:道歉,我没有看到你已经将依赖项添加到你的composer.json中)
额外的依赖应该在你自己的应用程序中composer.json
(而不是PHPMailer'),因为你永远不需要编辑通过composer加载的包。您可能只需要运行composer update
(而不仅仅是composer install
)。否则,它只会加载最新composer.lock
文件中的软件包,而不是您添加的额外软件包。