【发布时间】:2018-09-03 19:05:50
【问题描述】:
我正在尝试使用 Laravel 中的 smtp.mailtrap.io 向电子邮件发送消息。我遵循了 youtube 教程并不断收到以下错误。
无法与主机 smtp.mailtrap.io 建立连接
为此,我在下面附上了我的代码。
页面控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Post;
use Mail;
use Session;
class PagesController extends Controller {
public function getIndex() {
$posts = Post::orderBy('created_at', 'desc')->limit(4)->get();
return view('welcome')->withPosts($posts);
}
public function getAbout() {
$first = 'Niamh';
$last = 'Flannery';
$fullname = $first . " " . $last;
$email = 'niamh3516@hotmail.co.uk';
$data = [];
$data['email'] = $email;
$data['fullname'] = $fullname;
return view('pages.about')->withData($data);
}
public function getContact() {
return view('contact');
}
public function postContact(Request $request) {
$this->validate($request, [
'email' => 'required|email',
'subject' => 'min:3',
'message' => 'min:10']);
$data = array(
'email' => $request->email,
'subject' => $request->subject,
'bodyMessage' => $request->message
);
Mail::send('emails.contact', $data, function($message) use ($data){
$message->from($data['email']);
$message->to('niamh3516@hotmail.co.uk');
$message->subject($data['subject']);
});
Session::flash('success', 'Your Email was Sent!');
return redirect('/');
}
}
联系.blade.php
<div class="row">
<div class="col-md-12">
<h1>Contact Me</h1>
<hr>
<form action="{{ url('contact') }}" method="POST">
{{ 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>
web.php
Route::get('contact', 'PagesController@getContact');
Route::post('contact', 'PagesController@postContact');
contact.php
<h3> You have a new contact via the contact form </h3>
<div>
{{$bodyMessage}}
</div>
<p> Sent Via {{$email}}</p>
.env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=25
MAIL_USERNAME=c388d55897e620
MAIL_PASSWORD=f3d7fa90a9c6ab
MAIL_ENCRYPTION=null
【问题讨论】:
-
如果我没记错的话,检查你的
port一些使用 SSL 的 SMTP 类似465。 -
@ArtisticPhoenix 我的 Mailtrap 帐户上的端口说使用 25 或 465 或 2525 我应该尝试所有这些看看吗?
-
没什么坏处,您还必须确保在防火墙中为出站流量打开该端口。邮件无法正常工作的原因有很多。
-
@ArtisticPhoenix 尝试更改端口,它们都返回与上述相同的错误。检查了我的防火墙它已关闭所以我打开它但仍然得到同样的错误
-
it 有帮助吗?