【发布时间】:2018-11-17 00:03:41
【问题描述】:
我需要更改从 Laravel 发送的一些电子邮件的发送域。为此,我设置了一个排队作业,并且在句柄方法中配置了Swift_SmtpTransport 对象,如下所述:Laravel Mail Queue: change transport on fly
public function handle(Mailer $mailer)
{
$transport = new \Swift_SmtpTransport(config('mail.host'), config('mail.port'), config('mail.encryption'));
$transport->setUsername(config('mail.username'));
$transport->setPassword(config('mail.password'));
$transport->setLocalDomain(env('MAILGUN_EMAIL_DOMAIN'));
$smtp = new \Swift_Mailer($transport);
$mailer->setSwiftMailer($smtp);
$mailer->send('emails.email', ['data'], function ($m) {
$m->setTo($this->to)
->setBody($this->email->emailResponse)
->setSubject(sprintf('%s [Ref: #%s]', $this->email->emailThread->subject, $this->email->emailThread->slug));
});
}
由于某种原因,Mailgun 不喜欢我的登录详细信息。
当我通过 Mail 门面发送电子邮件时,它可以工作,所以我的登录名是正确的。
Failed to authenticate on SMTP server with username "xxx" using 2 possible authenticators. Authenticator LOGIN returned Swift_TransportException: Expected response code 235 but got code "535", with message "535 5.7.0 Mailgun is not loving your login or password
" in /home/vagrant/code/myapp/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:457
在mail.php 我有:
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
什么给了?
【问题讨论】:
-
您的
.env中的密码是否正确? -
是的,因为使用 Mail 门面发送有效。我的邮件凭据只有 1 个位置,即 .env 文件
-
好的,所以我继续并重置了凭据,它现在可以工作了。感谢@CommandZ 的帮助:D
标签: php laravel swiftmailer mailgun