电子邮件使用获取请求来处理路由,但电子邮件不会随请求发送,并且仅刷新页面就没有错误

时间:2019-02-15 23:20:05

标签: laravel mailgun

我已验证电子邮件是否已通过mailgun使用具有get请求的公共功能邮件发送,该请求在页面上没有数据。尝试从带有POST请求的联系人页面发送电子邮件只会刷新页面,没有错误,但电子邮件不会发送。

我已经设置了.env和config.mail / config.services并使用web.php中的get请求成功发送了邮件。

首先,我使用Terminal php artisan make:mail。然后,我为联系人页面创建了两个路由(GET / POST),创建了联系人视图(有效),将数据发送到PagesController.php,运行了三个输入的验证,并将数据传递给Mail :: send。单击提交按钮后,页面将刷新,没有错误(验证不起作用),并且电子邮件不发送。

PagesController.php:

命名空间(     

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Post;
use App\Mail\Welcome;
use Mail;

PagesController类扩展了Controller {

public function getContact(){
   return view('pages/contact');
    }

public function postContact(Request $request){
  $this->validate($request,[
     'email' => 'required|email',
     'subject' => 'min:3',
     'message' => 'min: 3'
  ]);

$data = array(
    'email' => $request->email,
    'subject' => $request->subject,
    'bodyMessage' => $request->message
  );

\Mail::send('email.Test', $data, function($message) use ($data){
    $message->from($data['email']);
    $message->to('visionquest.jesse@gmail.com');
    $message->subject($data['subject']);
 });

}

Web.php:

Route::get('contact', 'PagesController@getContact');
Route::post('contact', 'PagesController@postContact');

Test.blade.php:

<html>

 <h1> Email from: {{ $email }}</h1>

 <p> {{ $subject }} </p>
 <br><br>
 <hr>
 <p>{{ $bodyMessage}}</p>

contact.blade.php:

@extends('main')

@section('title', '| Contact')

@section('content')


  <div class="row">
    <div class="col-md-12">
      <h1>Contact Me</h1>
      <hr>
      <form acion="{{ url('contact') }}">
        {{ csrf_field() }}
        <div class="form-group">
          <label name="email">Email:</label>
          <input id="email" name="email" class="form-control">
        </div>

        <div class="form-group">
          <label name="subject">Subject:</label>
          <input id="subject" name="subject" class="form-control">
        </div>

        <div class="form-group">
          <label name="message">Message:</label>
          <textarea id="message" name="message" class="form-             control">Type your message here...</textarea>
        </div>

        <input type="submit" value="Send message" class="btn btn-success">

      </form>
    </div>
  </div>

@endsection

我要做的就是从表单中提取信息,然后通过电子邮件将其发送到设置的地址。我已经为此工作了一个多星期,现在我没有收到错误,也不知道该怎么办。

2 个答案:

答案 0 :(得分:0)

您可以将其添加到刀片文件中的表格上方。您将可以看到验证错误(如果有):

@if ($errors->any())
     @foreach ($errors->all() as $error)
         <div>{{$error}}</div>
     @endforeach
 @endif

也要更改:

<form acion="{{ url('contact') }}">

收件人

<form action="{{ url('contact') }}" method="POST">

答案 1 :(得分:-1)

在表单上输入一些方法: method =“ POST” ,因为一旦提交,它将路由到 GET 路由,而不是 POST < / strong>路由,因为您未在表单上声明方法