php – 如何使用Laravel发送电子邮件?
发布时间:2020-12-14 19:39:53 所属栏目:大数据 来源:网络整理
导读:我正在尝试发送电子邮件,但我不能再移动了,这是我的看法: h1Contact TODOParrot/h1form action="contact" method="post"div class="form-group" labelYour First Name/label input type="text" name="Fname" placeholder="Your First Name" //divdiv class=
我正在尝试发送电子邮件,但我不能再移动了,这是我的看法:
<h1>Contact TODOParrot</h1> <form action="contact" method="post"> <div class="form-group"> <label>Your First Name</label> <input type="text" name="Fname" placeholder="Your First Name" /> </div> <div class="form-group"> <label>Your Last Name</label> <input type="text" name="Lname" placeholder="Your Last Name" /> </div> <div class="form-group"> <label>Your Email</label> <input type="email" name="Email" placeholder="Your Email" /> </div> <div class="form-group"> <label>Your Phone Number</label> <input type="text" name="Phone" placeholder="Your Phone" /> </div> <div class="form-group"> <label>Your Order</label> <input type="text" name="Order" placeholder="Your Order" /> </div> <div class="form-group"> <button class="btn btn-default" name="Submit" type="Submit">Send Order</button> </div> </form> 那是我的控制者: <?php namespace AppHttpControllers; use IlluminateHttpRequest; use AppHttpRequestsContactFormRequest; class aboutController extends Controller { // public function create() { return view('about.contact'); } public function store(ContactFormRequest $request) { Mail::send('about.contact',array( 'Fname' => $request->get('Fname'),'Lname' => $request->get('Lname'),'Email' => $request->get('Email'),'Phone' => $request->get('Phone'),'Order' => $request->get('Order') ),function($message) { $message->from('mohamedsasa201042@yahoo.com'); $message->to('elbiheiry2@gmail.com','elbiheiry')->subject('TODOParrot Feedback'); }); return Redirect::route('contact') ->with('message','Thanks for contacting us!'); } } 那是我的路线: Route::get('contact',['as' => 'contact','uses' => 'AboutController@create']); Route::post('contact','uses' => 'AboutController@store']); 这是.env文件中的配置: MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=465 MAIL_USERNAME= MAIL_PASSWORD= MAIL_ENCRYPTION=ssl 我删除了问题中的名称和密码 解决方法
与OP聊天后,这是答案.
主要问题: 您的ContactFormRequest.php具有以下规则功能: public function rules() { return [ 'name' => 'required','email' => 'required|email','message' => 'required',]; } 但是您的表单没有名称和消息,因此您需要删除不存在的元素或在需要时修改它们,为了我的测试目的,我只保留了电子邮件: public function rules() { return [ 'Email' => 'required|email',]; } 保留名称约定是一种很好的做法,例如,如果您使用电子邮件使用电子邮件E而不是使用电子邮件. 因此表格从未提交过发送. 我建议您构建我已经完成的商店功能并测试它是否有效,您可以修改它以满足您的要求: $data = [ 'no-reply' => 'contact-from-web@nomail.com','admin' => 'mohamedsasa201042@yahoo.com','Fname' => $request->get('Fname'),'Lname' => $request->get('Lname'),'Email' => $request->get('Email'),'Phone' => $request->get('Phone'),'Order' => $request->get('Order'),]; Mail::send('about.contact',['data' => $data],function ($message) use ($data) { $message ->from($data['no-reply']) ->to($data['admin'])->subject('Some body wrote to you online') ->to($data['Email'])->subject('Your submitted information') ->to('elbiheiry2@gmail.com','elbiheiry')->subject('Feedback'); }); 它应该工作, 我只使用Mandrill API电子邮件服务对其进行测试,但您可以尝试使用SMTP或API,这取决于您. 如果您要确认电子邮件,则需要创建电子邮件确认视图,将您的数据转发给它,如下所示: Mail::send('about.emailconfirmation', 你的观点看起来像这样: <tr> <td> <h1>Contact form</h1> <p>Dear {{ $data['Fname'] }},</p> <p>Thank you for contacting me.</p> <p>I will respond to your inquiry as quickly as possible.</p> <hr/> <p><b>Provided email</b></p> <p>Email: {{ $data['Email'] }},</p> </td> </tr> 这只是示例,但您可以进一步修改它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |