【问题标题】:How send email in Laravel 5.8如何在 Laravel 5.8 中发送电子邮件
【发布时间】:2019-10-21 21:55:51
【问题描述】:

我是 Laravel 的初学者。我在我的项目中使用 Laravel 5.8。 我想通过联系表格发送电子邮件。

我有这个代码:

public function sendContactForm($request)
    {
        $this->validate($request, [
        'name' => 'required|string',
        'topic' => 'required|string',
        'email' => 'required|email',
        'message' => 'required|string',
        'captcha' => 'required|captcha',
        'acceptReg' => 'required|integer',
    ]);
    $adminEmail = $this->frontendRepository->getSystemAdminEmail();

    $title = $request->input('topic');
    $txt = nl2br($request->input('message'));
    $userName = $request->input('name');
    $email = $request->input('email');
    $ip = $request->getClientIp();
    $dateTime = date('Y-m-d H:i:s');

    $message = "Masz wiadomość ze strony". env('APP_NAME')."<br/>
    <b>Dane wiadomości:</b> $dateTime [$ip]<br/>
    <b>Tytuł wiadomości:</b> $title<br/>
    <b>Imię:</b> $userName<br/>
    <b>Adres email:</b> $email<br/>
    <b>Wiadomość:</b> $txt<br/>";


    Mail::send('emails.welcome', $message, function ($message) {
        //$message->from('us@example.com', 'Laravel');
        $message->to($adminEmail, $name = null);
        $message->from($email, $name = null);
        $message->sender($email, $name = null);
        $message->replyTo($adminEmail, $name = null);
        $message->subject($title);
        //$message->attach($pathToFile, array $options = []);
        //$message->attachData($data, $name, array $options = []);
        $message->getSwiftMessage();
    });
    }

$adminEmail - 这是我的电子邮件

如何将此消息作为电子邮件发送?

我有错误:传递给 Illuminate\Mail\Mailer::send() 的参数 2 必须是数组类型,给定字符串,在 /var/www/vanessa/vendor/laravel/framework/src/Illuminate/ 中调用Support/Facades/Facade.php 在第 237 行

我怎样才能重复它?

【问题讨论】:

标签: php laravel laravel-5


【解决方案1】:

在 laravel 5.8 中发送电子邮件

Mail::send('blade.php', $email_data, function($message) use ($officer) {
    $message->from('from@gmail.com','web title');
    $message->subject("Appointment Scheduled");
    $message->to($email_data['email']);
});

【讨论】:

    【解决方案2】:

    为了发送电子邮件,您可能需要添加类似于下面提到的代码 sn-p 的内容:

    Mail::send('email',
       array(
           'name' => $request->get('name'),
           'email' => $request->get('email'),
           'user_message' => $request->get('message')
       ), function($message)
       {
           $message->from('abc@gmail.com');
           $message->to('test@cloudways.com', 'Admin')->subject('Cloudways 
    Feedback');
       });
        }
    

    有关如何发送邮件的详细信息,请参阅link

    【讨论】:

      【解决方案3】:
      1. 首先你必须在 app/Mail 中创建一个邮件类
      2. 创建您的视图
      3. 在您的 sendcontactform 控制器上调用邮件类
      4. 别忘了也调用邮件门面:use Illuminate\Support\Facades\Mail;

      例子:

      //mail class file inside app/Mail directory
      
          <?php
      
          namespace App\Mail;
      
          use Illuminate\Bus\Queueable;
          use Illuminate\Mail\Mailable;
          use Illuminate\Queue\SerializesModels;
          use Illuminate\Contracts\Queue\ShouldQueue;
      
          class SendContact extends Mailable
          {
              use Queueable, SerializesModels;
              public $username, $message;
              /**
               * Create a new message instance.
               *
               * @return void
               */
              public function __construct($username, $message)
              {
                  //
                  $this->username = $username;
                  $this->message= $message;
              }
      
              /**
               * Build the message.
               *
               * @return $this
               */
              public function build()
              {
                  return $this->view('contactform');
              }
          }
      //your controller
      
      use Illuminate\Support\Facades\Mail;
      use App\Mail\SendContact;
      
      public function sendContactForm($request)
          {
              $this->validate($request, [
                  'name' => 'required|string',
                  'topic' => 'required|string',
                  'email' => 'required|email',
                  'message' => 'required|string',
                  'captcha' => 'required|captcha',
                  'acceptReg' => 'required|integer',
              ]);
      
      
              $title = $request->input('topic');
              $txt = nl2br($request->input('message'));
              $userName = $request->input('name');
              $email = $request->input('email');
              $ip = $request->getClientIp();
              $dateTime = date('Y-m-d H:i:s');
      
              $message = "Masz wiadomość ze strony". env('APP_NAME')."<br/>";
              $message .= "
              <b>Dane wiadomości:</b> $dateTime [$ip]<br/>
              <b>Tytuł wiadomości:</b> $title<br/>
              <b>Imię:</b> $userName<br/>
              <b>Adres email:</b> $email<br/>
              <b>Wiadomość:</b> $txt<br/>";  
      
               Mail::to($email)->send(new SendContact($userName, $message));
               die('mail sent!');
          }
      
       //your blade contactform.blade.php
      @extends('app.layouts')
      @section('content')
                      Hello, {{ $username }}<br/>
                      Your enquiry has been received<br/>
      
                     <br/>
                      <p>{{ $message }}</p>
      
      
      @endsection
      
       in your .env file define this
          MAIL_DRIVER=smtp
          MAIL_HOST="mail.example.com" //this should be from your webhost
          MAIL_PORT=465
          MAIL_USERNAME="info@example.com" //this is the email from your domain
          MAIL_PASSWORD="************"  //password of the email
          MAIL_FROM_ADDRESS=info@example.com
          MAIL_FROM_NAME='Enquiry Information'
          MAIL_ENCRYPTION=ssl
      

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2022-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-25
        • 1970-01-01
        • 2019-06-24
        相关资源
        最近更新 更多