我已验证电子邮件是否已通过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
我要做的就是从表单中提取信息,然后通过电子邮件将其发送到设置的地址。我已经为此工作了一个多星期,现在我没有收到错误,也不知道该怎么办。
答案 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>路由,因为您未在表单上声明方法