电子邮件使用获取请求的路由,但电子邮件不会发送邮件请求,只有页面刷新没有错误

问题描述 投票:0回答:2

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

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

首先我使用终端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;

class 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('[email protected]');
    $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

我想要做的就是从表单中提取信息并通过电子邮件发送到设定的地址。我已经工作了一个多星期,现在我没有得到错误我不知道该怎么做。

laravel mailgun
2个回答
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
投票

在你的表单上放一些方法:method =“POST”因为一旦你提交它,它将路由到GET路由而不是POST路由,因为你没有在表单上声明一个方法

© www.soinside.com 2019 - 2024. All rights reserved.