预期响应代码 250 但收到代码“550”Laravel swift 邮件程序

Expected response code 250 but got code "550" Laravel swift mailer

我可以从 tinker 发送电子邮件,但是当我尝试从 laravel 框架中的代码发送电子邮件时,出现以下错误:

Swift_TransportException (550)
Expected response code 250 but got code "550", with message "550 Bad HELO - Host impersonating domain name [mydomain.com] "

这是我用来测试从 laravel 控制器发送电子邮件的简单邮件方法:

  Mail::send('errors.401', [], function ($message) { $message->to('my.email@gmail.com')->subject('this works!'); });

.env 文件:

MAIL_DRIVER=smtp
MAIL_HOST=mail.mydomain.com
MAIL_PORT=587
MAIL_USERNAME=info@mydomain.com
MAIL_PASSWORD=<password>
MAIL_ENCRYPTION=

我已完成以下步骤,但仍然无效:

composer dump-autoload
php artisan view:clear
php artisan cache:clear
php artisan config:cache

更新:

我的代码在 ubuntu 服务器上,我配置了 dns 服务器和 bind9 以将域连接到服务器,并且我有一个外部邮件服务器来处理电子邮件。

因此,每当在 ubuntu 服务器中创建电子邮件请求时,它都会将其转发到外部邮件服务器。

我应该在哪里寻找问题?

我在浪费了很多时间后解决了这个问题,希望这个答案不要再浪费别人的时间了。

这是由于本地域名, 我们需要在 mail.php 配置文件中定义一个本地名称,这样我们的服务器就不会与外部服务器域名混淆。

 'local_domain' => env('MAIL_HOST', 'mail.mydomain.com'), 

在我的例子中,我在通知 class.

toMail 函数中的 MailMessage 实例上使用了方法 ->from($this->user->email, $this->user->name);
public function toMail($notifiable)
{    
    return (new MailMessage)
        ->markdown('admin.email.feedback', [
            'user' => $this->user,
            'farms' => $farm_names,
            'message' => $this->message,
            'time' => $this->time])
        ->subject("Customer feedback")
        ->from($this->user->email, $this->user->name); // from
}

由于在 config.mail 中设置了默认发送邮件,并且没有为客户电子邮件地址设置密码,我收到错误消息:

Swift_TransportExceptionExpected response code 250 but got code "550", with message "550 Email Rejected, Invalid From Address - gmail.com"

两种解决方案:
1] 如果我想使用默认 config.mail 信息,请删除 from 方法并替换为 replyTo 方法。
2] 通过保存他们的 email details.

设置从客户帐户 smtp 设置发送邮件