首页 > 解决方案 > 发送 smtp 邮件 laravel 不工作

问题描述

我在我的 laravel 项目中遇到问题,不知道如何解决我使用 mailtrap smtp 服务器为未发送邮件的特殊用户发送邮件 - 我尝试了各种方法!在其他新的 laravel 项目 smtp 服务器中成功运行你的想法是什么?

这是我的控制器:

 public function SendContactRespone(ContactReply $request , $id)
{

    Mail::to($request->email)->send(new ContactRespone($request));

    //Contact_form::destroy($id);
    return redirect(route('admin.contact.index'))
        ->with('success', trans('app.err.AnswerEmailed'));
}

这是我的 ContactRespone 可邮寄

    <?php

namespace App\Mail;

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

class ContactRespone extends Mailable
{
    use Queueable, SerializesModels;

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

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
     return  $this
           ->from(env('MAIL_FROM_ADDRESS','info@secretpass.ir'))
           ->subject($this->request->subject)
           ->markdown('ui.mails.contactReply')
           ->with([
            'subject' => $this->request->subject,
            'message' => $this->request->text,
        ]);

    }
}

环境设置:

    MAIL_DRIVER=smtp
MAIL_HOST="smtp.mailtrap.io"
MAIL_PORT="2525"
MAIL_USERNAME="******"
MAIL_PASSWORD="*******"
MAIL_ENCRYPTION=''
MAIL_FROM_ADDRESS="no-reply@*****.***"

提交请求后,将电子邮件 html 源保存在 Storage/log/laravel.log 中

标签: phplaravelemailsmtp

解决方案


更改邮件陷阱的.env文件配置

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=USERNAME
MAIL_PASSWORD=PASSWORD
MAIL_ENCRYPTION=null

在这里您可以获取用户名密码 https://mailtrap.io/inboxes您将看到以下 mailtrap SMTP 凭据,用户名和密码所在的位置

更改 .env 编辑后,请清除缓存:php artisan config:cache


推荐阅读