SwiftMailer ReflectionException:类Egulias \ EmailValidator \ EmailValidator不存在

时间:2017-06-07 21:53:38

标签: php swiftmailer

SwiftMailer:反思异常

我一直试图找出这个错误半天,觉得我已经尝试了一切。我确实从SwiftMailer's Website复制了我遇到问题的部分的代码,但它仍然得到了ReflectionException。

一些背景细节:

Php版本:7

Swiftmailer版本:6.0.0

使用SwiftMailer的PHP代码

require_once 'swiftmailer-master/lib/swift_required.php';

$transport = (new Swift_SmtpTransport('smtp.gmail.com', 465, "ssl"))
  ->setUsername('my_gmail_username')
  ->setPassword('my_gmail_password');

$mailer = new Swift_Mailer($transport);

$message = (new Swift_Message())
  ->setSubject('Your subject')
  ->setFrom(['john@doe.com' => 'John Doe'])
  ->setTo(['receiver@domain.org', 'other@domain.org' => 'A name'])
  ->setBody('Here is the message itself')

我遇到的错误

[07-Jun-2017 17:31:28 America/New_York] PHP Fatal error:  Uncaught 
ReflectionException: Class Egulias\EmailValidator\EmailValidator does not 
exist in /home/johnjpra/public_html/php/swiftmailer-
master/lib/classes/Swift/DependencyContainer.php:309
Stack trace:
#0 /home/johnjpra/public_html/php/swiftmailer-
master/lib/classes/Swift/DependencyContainer.php(309): ReflectionClass-
>__construct('Egulias\\EmailVa...')
#1 /home/johnjpra/public_html/php/swiftmailer-
master/lib/classes/Swift/DependencyContainer.php(323): 
Swift_DependencyContainer->createNewInstance('email.validator')
#2 /home/johnjpra/public_html/php/swiftmailer-
master/lib/classes/Swift/DependencyContainer.php(114): 
Swift_DependencyContainer->createSharedInstance('email.validator')
#3 /home/johnjpra/public_html/php/swiftmailer-
master/lib/classes/Swift/DependencyContainer.php(371): 
Swift_DependencyContainer->lookup('email.validator')
#4 /home/johnjpra/public_html/php/swiftmailer-
master/lib/classes/Swift/DependencyContainer.php(348): 
Swift_DependencyContainer->lookupRecursive('email.validator')
#5 /home/johnjpra/pu in /home/johnjpra/public_html/php/swiftmailer-
master/lib/classes/Swift/DependencyContainer.php on line 309

我很想弄清楚这一点。提前感谢任何评论或回答此问题的人

2 个答案:

答案 0 :(得分:2)

您缺少egulias/email-validator个包裹。

在SwiftMailer的composer.json中,您可以看到它具有此依赖性。

"require": {
    "php": ">=7.0.0",
    "egulias/email-validator": "~2.0"
},

答案 1 :(得分:0)

我知道这是一个有两年历史的问题,但是最近遇到了这个问题。

问题似乎是软件包中的某处设置为绝对路径而不是相对路径。

我通过将所需的composer.json复制到正在使用的文件夹中来解决此问题。然后安装了composer。过了一会儿,我有一个工作迅速的swiftmailer。