预期响应代码 354 但得到代码“503”

I. *_*nov 6 php smtp laravel

我正在尝试在 Laravel 项目中创建联系我们表单,但遇到以下错误并想知道如何解决此问题。

预期的响应代码 354,但得到代码“503”,消息“503-所有 RCPT 命令被拒绝并出现此错误:503-”您的 IP:202.133.88.147:标题 503-From 中不允许您的域 gmail.com”503有效的 RCPT 命令必须在 DATA 之前

以下是我的.ENV文件

MAIL_DRIVER=smtp
MAIL_HOST=mail.mydomain.com
MAIL_PORT=26
MAIL_USERNAME=support@mydomain.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=null
Run Code Online (Sandbox Code Playgroud)

控制器

  public function contactus()
    {
        return view('contactus');
    }

    public function sendContactMail(Request $request)
    {
        Mail::to('support@mydomain.com')->send(new ContactUs($request));
        Session::flash('success','Message Sent Successfully!');
        return redirect()->back();
    }
Run Code Online (Sandbox Code Playgroud)

联系我们.php

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class ContactUs extends Mailable
{
    protected $contactdata;
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(\Illuminate\Http\Request $request)
    {
        $this->contactdata = $request;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->from($this->contactdata->email)
                    ->subject($this->contactdata->subject)
                    ->with([
                        'message'   =>  $this->contactdata->message,
                        'fullname'  =>  $this->contactdata->first_name.' '.$this->contactdata->last_name
                    ])
                    ->markdown('emails.contactus');
    }
}

Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助。

小智 9

我通过将mail.php 文件中的全局“发件人”地址替换为 .env 的相同输入解决了这个问题MAIL_USERNAME=


Koa*_*ung 4

从错误消息来看,您可能正在通过 Gmail 的 SMTP 服务发送电子邮件。

你的.env应该看起来像这样:

MAIL_DRIVER=smtp
MAIL_HOST=mail.mydomain.com
MAIL_PORT=587
MAIL_USERNAME=support@mydomain.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls
Run Code Online (Sandbox Code Playgroud)

您还需要确保:

  1. 您的域mydomain.com已正确设置为使用GSuite的 Gmail。您无法将 Gmail 的 SMTP 设置为发送不在 GSuite 中的域或 Gmail 帐户中的电子邮件。

  2. 如果您的帐户启用了两步验证,则您需要一个应用程序密码才能登录 SMTP。