laravel 163发送邮件
配置163邮箱账户
首先需要有163邮箱,这里在163邮箱必须在设置里面开启SMTP服务,并设置密码
修改laravel根目录下的.env文件, 设置邮箱相关内容:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=465
MAIL_USERNAME=YOUR-EMAIL-NAME
MAIL_PASSWORD=YOUR-163-PASSWORD //密码是你设置SMTP设置的密码,不是登录密码
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=YOUR-EMAIL
MAIL_FROM_NAME=YOUR-NAME
注意上面,如果你的网站没有开启ssl,需要设置端口MAIL_PORT为25,同时设置MAIL_ENCRYPTION=null
修改config文件夹下mail.php
'from' => [
'address' => env('MAIL_FROM_ADDRESS', YOUR-EMAIL'),
'name' => env('MAIL_FROM_NAME', 'YOUR-NAME'),
],
测试发送邮件功能
- 创建一个发送邮件测试类:
需要切换到laravel根目录,执行以下命令
php artisan make:mail TestMail
该命令会在app/Mail目录中创建一个TestMail.php文件,修改可邮寄类 TestMail 的 build 方法如下:
public function build()
{
return $this->subject('测试邮件')->view('emails.test');
}
上面使用了视图,我们需要在resources/views目录下创建emails目录,在emails目录下创建test.blade.php文件,内容如下:
一封来自laravel测试网站的测试邮件!
- 使用Tinker测试发送邮件功能:
错误
- 网站没有开启ssl
PHP Warning: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol in /www/wwwroot/abc/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php on line 267
PHP Warning: stream_socket_client(): Failed to enable crypto in /www/wwwroot/abc/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php on line 267
PHP Warning: stream_socket_client(): unable to connect to ssl://smtp.163.com:25 (Unknown error) in /www/wwwroot/abc/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php on line 267
Swift_TransportException with message 'Connection could not be established with host smtp.163.com [ #0]'
当你的网站没有设置ssl,但是配置了MAIL_ENCRYPTION=ssl,就会出现上述错误
- 端口设置错误
端口设置错误信息:
PHP Warning: stream_socket_client(): unable to connect to smtp.163.com:225 (Connection refused) in /www/wwwroot/abc/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php on line 267
Swift_TransportException with message 'Connection could not be established with host smtp.163.com [Connection refused #111]'
发送邮箱的端口设置参考:http://help.163.com/10/0731/11/6CTUBPT300753VB8.html
参考:
https://laravelacademy.org/post/9743.html
http://help.163.com/10/0731/11/6CTUBPT300753VB8.html