Laravel 发送电子邮件 SMTP

Posted

技术标签:

【中文标题】Laravel 发送电子邮件 SMTP【英文标题】:Laravel send email SMTP 【发布时间】:2017-02-11 19:31:42 【问题描述】:

谁能帮助我使用 Laravel 邮件功能

我将 config/mail.php 文件更改为

'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'mail.concept.kz'),
'port' => env('MAIL_PORT', 25),
'from' => ['address' => 'support@concept.kz', 'name' => 'asdf'],
'encryption' => env('MAIL_ENCRYPTION', null),
'username' => env('support@concept.kz'),
'password' => env('mypassword'),
'sendmail' => '/usr/sbin/sendmail -bs',

这是我在控制器中的代码

Mail::raw($messageBody, function($message) 
            $message->from('support@concept.kz', 'Learning Laravel');
            $message->to('receiver@mail.ru');
        );

        if (Mail::failures()) 
            echo 'FAILED';
        
        return redirect()->back();

我对 .env 文件进行了相同的更改,但没有任何反应。 谁能给我建议该怎么做?难道我做错了什么?

【问题讨论】:

你得到什么错误? @lewis4u 我没有收到任何错误。 阅读此完整指南unitedwebsoft.in/blog/… 【参考方案1】:

从您的网站发送电子邮件

    创建用户发送电子邮件的视图:

    !! Form::Open(['url' => 'sendmail']) !!
    
    <div class="col_half">
       !! Form::label('name', 'Name: ' ) !!
       !! Form::text('name', null, ['class' => 'form-control', 'required']) !!
    </div>
    
    <div class="col_half col_last">
       !! Form::label('email', 'E-Mail: ' ) !!
       !! Form::email('email', null, ['class' => 'form-control', 'required']) !!
    </div>
    
    <div class="clear"></div>
    
    <div class="col_full col_last">
       !! Form::label('subject', 'Subject: ' ) !!
       !! Form::text('subject', null, ['class' => 'form-control', 'required']) !!
    </div>
    
    <div class="clear"></div>
    
    <div class="col_full">
        !! Form::label('bodymessage', 'Message: ' ) !!
        !! Form::textarea('bodymessage', null, ['class' => 'form-control', 'required', 'size' => '30x6']) !!
    </div>
    
    
    <div class="col_full">
         !! Form::submit('Send') !!
    </div>
    !! Form::close() !!
    

1a。在控制器中创建这个函数:

public function sendMail(Request $request) 
    //dd($request->all());

    $validator = \Validator::make($request->all(), [
                                'name' => 'required|max:255',
                                'email' => 'required|email|max:255',
                                'subject' => 'required',
                                'bodymessage' => 'required']
    );

        if ($validator->fails()) 
            return redirect('contact')->withInput()->withErrors($validator);
        


    $name = $request->name;
    $email = $request->email;
    $title = $request->subject;
    $content = $request->bodymessage;


        \Mail::send('emails.visitor_email', ['name' => $name, 'email' => $email, 'title' => $title, 'content' => $content], function ($message) 

            $message->to('your.email@gmail.com')->subject('Subject of the message!');
        );


    return redirect('contact')->with('status', 'You have successfully sent an email to the admin!');


    在您的路由文件中创建指向该函数的路由

    在 /resources/views/emails/visitor_email.blade.php 中创建一个 Blade.php 视图文件 包含以下内容:

      <p>Name:  $name </p>
      <p>E-Mail:  $email </p>
      <p>Subject:  $title </p>
      <p>Message: <br>
       $content </p>
    

    在 .env 文件中放置您的数据,以便像这样发送电子邮件

    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.gmail.com
    MAIL_PORT=587
    MAIL_USERNAME=your.email@gmail.com
    MAIL_PASSWORD=email-password
    MAIL_ENCRYPTION=tls
    

这应该有效!如果您需要更多帮助,请询问!

【讨论】:

当有人填写表格时,我正在尝试向自己发送电子邮件。

以上是关于Laravel 发送电子邮件 SMTP的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.5 发送电子邮件没有响应 smtp.gmail.com #10060

Laravel SMTP 邮件未发送

使用 smtp 服务器发送自定义电子邮件地址时 Laravel 错误

发送邮件 Laravel XAMPP SMTP

Laravel5.5 邮件驱动使用 SMTP 驱动实现邮件发送

无法从 Laravel 应用程序发送电子邮件:无法与主机 smtp.gmail.com 建立连接 [连接超时 #110]