当你谷歌这个错误时,几乎所有的问题都是空的电子邮件地址或未插入的变量。在这种情况下,报告的异常引用了看似有效的地址。
更多关于这个问题的唯一地址;该脚本会毫无问题地通过电子邮件发送给所有其他用户。
昨天发生错误时,我手动清除mySQL中的字段并重新输入,因为我担心Outlook中粘贴了一些流浪隐形字符,但错误今天再次发生。
以下是用户电子邮件被替换的错误。他的电子邮件只是firstNameLastName@yahoo.com。没什么不寻常的。
PHP Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox given [Xxx Yyy <xxxyyy@yahoo.com>] does not comply with RFC 2822, 3.6.2.' in /home/foo/foo.org/classDBI/Swift-4.1.5/lib/classes/Swift/Mime/Headers/MailboxHeader.php:308
Stack trace:
#0 /home/foo/foo.org/classDBI/Swift-4.1.5/lib/classes/Swift/Mime/Headers/MailboxHeader.php(238): Swift_Mime_Headers_MailboxHeader->_assertValidAddress('Xxx Yyy <xx...')
#1 /home/foo/foo.org/classDBI/Swift-4.1.5/lib/classes/Swift/Mime/Headers/MailboxHeader.php(96): Swift_Mime_Headers_MailboxHeader->normalizeMailboxes(Array)
#2 /home/foo/foo.org/classDBI/Swift-4.1.5/lib/classes/Swift/Mime/Headers/MailboxHeader.php(60): Swift_Mime_Headers_MailboxHeader->setNameAddresses(Array)
#3 /home/foo/foo.org/classDBI/Swift-4.1.5/lib/classes/Swift/Mime/SimpleHeaderFactory.php(60): Swift_Mime_Headers_MailboxHeader->setFieldBodyModel(Array)
#4 /home/foo/tax in /home/foo/foo.org/classDBI/Swift-4.1.5/lib/classes/Swift/Mime/Headers/MailboxHeader.php on line 308
产生错误的代码,除了这一条记录之外都成功
$message = Swift_Message::newInstance()
->setSubject("Ticket Report for " . date("n/j/Y"))
// email => name
->setFrom(array('postmaster@' . SITEDOMAIN => ORGNAME . ' Admin'))
// email => name
->setTo(array($u->email => $u->first_name . ' ' . $u->last_name))
//Give it a body
->setBody(strip_tags($email_body))
//And optionally an alternative body
->addPart(nl2br($email_body), 'text/html')
;
$transport = new Swift_SmtpTransport();
$mailer = Swift_Mailer::newInstance($transport);
$result = $mailer->send($message);
那么我的下一步调试是什么呢?
答案 0 :(得分:0)
通常情况下,一点点验证会有很长的路要走,垃圾数据会导致错误。
用户在电子表格中输入了他们的电子邮件“Xxx Yyy <xxxyyy@yahoo.com>
”,并导入到数据库中,围绕我们通常的有效性检查。所以错误看起来像是抱怨有效的地址......
在出路上添加电子邮件验证时发现了这一点,我们已针对此重复添加了适当的检查。