严重性:错误 --> 异常:“$email”必须是 SendGrid\Mail\From 的实例或有效的电子邮件地址

Severity: error --> Exception: "$email" must be an instance of SendGrid\Mail\From or a valid email address

这是我的代码和问题严重性:错误 --> 异常:“$email”必须是 SendGrid\Mail\From 的实例或有效的电子邮件地址

require 'vendor/autoload.php';
        $email = new \SendGrid\Mail\Mail();
        $email->setFrom($this->ecomhut->getConfig('salesEmail'));
        $email->setSubject($subject);
        
        $email->addTo($data['email']);
        
        //$email->addBcc($this->ecomhut->getConfig('supportEmail'));
        
        $email->addBcc($this->ecomhut->getConfig('ForwarderEmail'));
        
        $email->setReplyTo($this->ecomhut->getConfig('supportEmail'),NULL);
        
        $email->addContent(
            "text/html", $template
        );
        
        $sendgrid = new \SendGrid($this->SENDGRID_API_KEY);
        
        try {
            $response = $sendgrid->send($email);
           
        } catch (Exception $e) {
            
           log_message('error', "Email Not Send form admin agianst ".$data['email']." \n" .print_r($response));
        
           return false;
        }
        return true;

此处为 Twilio SendGrid 开发人员布道师。

SendGrid PHP library 验证电子邮件地址被设置为发件人和收件人地址。在这种情况下,投诉是发件人电子邮件地址不是有效的电子邮件地址。

$email->setFrom($this->ecomhut->getConfig('salesEmail'));

在配置或数据库中存储电子邮件地址时,您需要确保该字符串是有效的电子邮件地址,包括删除开头或结尾的白色 space。为了解决这个问题,您可以考虑使用 trim 函数来删除白色 space

$email->setFrom(trim($this->ecomhut->getConfig('salesEmail')));

这可以防止以后的错误影响电子邮件的发送。