nette/mail组件亲测,laravel版本5.1.33,测试时间:2016/8/22
目前存在问题(希望亲自测试下,网上找了好几个解决方法都不行):
- 使用的是163邮箱,但是不能给qq邮箱发送邮件(报554错误),测试了163可以。错误代码如下:(去下面的地址看了是垃圾邮件的问题,但是不知道怎么解决,加了ssl方式报错。。。)
SMTP server did not accept . with error: 554 DT:SPM 163 smtp7,C8CowABHpRKEq7pXNF4xDA--.287S2 1471851396,please see http://mail.163.com/help/help_spam_16.htm?ip=114.111.166.251&hostid=smtp7&time=1471851396
- qq邮箱已经开启了smtp,但是一直报530错误
~如果有哪个大神知道怎么回事,请发邮件到我邮箱492406945@qq.com,谢谢!~
1 首先先安装nette/mail组件
composer require nette/mail(如果没有安装composer,先自己安装下,网上很多)
2 demo如下
#rootes.php路由
Route::get('/','MailController@index');//访问根目录,则访问index的方法
Route::post('mail','MailController@postSend');//接受到post表单提交,postSend方法处理
#index.blade.php 提交表单
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试</title>
</head>
<body>
<form class="{{url('mail')}}" action="{{url('mail')}}" method="post">
{!! csrf_field() !!}
邮箱:<input type="text" name="mail" value="">
<input type="submit" value="提交">
</form>
</body>
</html>
#使用命令生成控制器
//php artisan make:controller MailController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Nette\Mail\Message;//需要手动添加
use Nette\Mail\SmtpMailer;//需要手动添加
class MailController extends Controller
{
//访问表单页面
public function index(){
return view('index');
}
/××
×接受表单数据,发送邮件
×@param $request 对象
×只是简单测试,无返回值,不报错就是成功
×/
public function postSend(Request $req){
// dd($req->input('mail'));
if($req->input('mail')){
$mail = new Message;
$mail->setFrom('yzj <yzj910420@163.com>')
->addTo($req->input('mail'))
->setSubject('这是一个email组件测试')
->setBody("我试一下邮件发送!");
//自定义发送邮件
$mailer = new SmtpMailer([
'host' => 'smtp.163.com',
'username' => '你的用户名',
'password' => '自己设置的客户端授权密码'
]);
$mailer->send($mail);
}
}
}