我是Laravel的新手,正在尝试配置邮件。我的.env文件配置为:
{
"query" : {
"bool" : {
"filter": [{
"match": {
"place": "Boston"
}
}],
"must":[{
"multi_match" : {
"query": "Law Firm",
"fields": [ "type", "name" ],
"type": "most_fields"
}
}]
}
}
}
对于我的邮件测试,我使用修补程序:
MAIL_DRIVER=SMTP
MAIL_HOST=vserv.******.***
MAIL_PORT=587
MAIL_USERNAME=admin@******.***
MAIL_PASSWORD=********* <--- (9 chars lengh)
MAIL_ENCRYPTION=TLS
在测试之前,我将缓存刷新为:
>php artisan tinker
>>> Mail::send('mails.contact',[], function($message) { $message->to('sergio@******.****')->subject('Testing email'); });
修补匠返回此错误:
>php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!
服务器端,邮件日志有错误:
Swift_TransportException with message 'Failed to authenticate on SMTP server with username "admin@******.***" using 3 possible authenticators. Authenticator CRAM-MD5 returned Swift_TransportException: Expected response code 235 but got code "535", with message "535 5.7.8 Error: authentication failed: authentication failure
" in ****/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:457
注意:我在env中使用的密码为9个字符,但错误消息中的密码始终少1个字符!如果我输入了错误的10个字符长度的密码,则会显示错误(密码len = 9),依此类推。有道理吗?
感谢您的任何建议。
答案 0 :(得分:3)
该错误表明您的用户名或密码错误。在这种情况下,密码字符串中会包含一个#
字符,这会使其余密码被解释为注释。
解决方案是引用密码:
MAIL_PASSWORD="my#secret"
如果它曾经可以工作,现在不再工作,那可能是因为Laravel 5.8包含了dotenv库的更新版本,该版本更改了行为:
https://laracasts.com/discuss/channels/laravel/beware-in-env-files