Zubair
Zubair

Reputation: 295

I have problem with email sending using laravel

I am trying to send data into my gmail account but unfortunately data is not sending to email but data is inserting into database and how can I send data into my Gmail account.

Please check error here: https://flareapp.io/share/Bm0Bz67x?owner_token=xzuA67Ze0Zztnhf8Ha65ctmNQEcX3DYd

Controller

         public function mail(Request $request){
          $contact            =   new ContactUs;
          $contact->fname     =   $request->fname;
          $contact->lname     =   $request->lname;
          $contact->phone     =   $request->phone;
          $contact->subject   =   $request->subject;
          $contact->message   =   $request->message;
          $contact->save();
    
         Mail::to(config('fantastic.mail_to'))->send(new ContactMail($contact));
    
         return back()
         ->with('success', 'We Will Contact You soon')
         ->with('path',    $contact);
          } 

html view

            <form  method="post" action="{{route('contact.mail')}}" >
            @csrf
            <div class="row">
            <div class="col-md-4">
            <label for="fname">First Name</label>
            <input type="text" class="form-control" name="fname" placeholder="First name" required>
            </div>
            <div class="col-md-4">
            <label for="lname">Last Name</label>
            <input type="text" class="form-control" name="lname" placeholder="Your last name" 
            required>
            </div>
            <div class="col-md-4">
            <label for="lname">Phone Number</label>
            <input type="text" class="form-control" name="phone" placeholder="Your Phone Number" 
            required>
             </div>
             <div class="col-md-12">
             <label for="subject">Subject</label>
             <input type="text" class="form-control" name="subject" placeholder="subject" required>
            </div>
               <div class="col-md-12">
              <label for="subject">Message</label>
              <textarea name="message" class="form-control" placeholder="Write something.." 
              style="width: 
               100%"></textarea>
               </div>
                <div class="col-md-12">
                 <div class="submit">
                  <input  class="form-submit" type="submit" name="btnsubmit" >
                  </div>
          
                  </div>
                  </div>
                  </form>

Contactemail

          <p>Name : {{$contact->fname . " " . $contact  ->lname}}</p>
       
          <p>Phone : {{$contact->phone}}</p>
          <p>Subject : {{$contact->subject}}</p>
          <p>Message : {{$contact->message}}</p>

Route

                      Route::get('contact','ContactController@index')->name('Contact');
                      Route::post('contact', 'ContactController@mail')->name('contact.mail');

Upvotes: 0

Views: 68

Answers (1)

Courtney White
Courtney White

Reputation: 614

There is a problem in your ContactMail class. Goto Mail/ContactMail.php and add this to your construct function and add a public variable:

 public $contact; //create a public global variable

 public function __construct(ContactUs $contact)
    {
        $this->contact = $contact;
    }

Make sure you include your model use App\ContactUs; inside ContactMail.php as well.

Upvotes: 1

Related Questions