laravel邮件配置之前已经说了 地址:laravel 邮件发送
今天是因为研究phphub源码,验证用户的邮件!
发现用的好像是国内搜狐的 sendcloud
,
于是我改成了自己的! 因为那个是收费的!
phphub源码
- app/Phphub/Handler/EmailHandler.php
里的 sendActivateMail
方法
改成
public function sendActivateMail(User $user)
{
UserVerification::generate($user);
$token = $user->verification_token;
return Mail::raw(url('verification', $user->verification_token).'?email='.urlencode($user->email), function (Message $m) use ($user,$token) {
$m->to($user->email)->subject(lang('Please verify your email address'));
});
然后其他的不动!
根目录执行 php artisan queue:listen
发现手机能收到邮件了!
但是 居然收到了二十几条!
然后看了下文档!说是用Supervisor
supervisor文档 我靠,都是英文,还那么多!
于是就google了其他方法!
先安装supervisor
执行命令(我deepin系统,基于debian,跟ubuntu差不多)
sudo apt-get install supervisor
安装完了,看到 /etc/supervisor/supervisor.conf
里的最后一行
[include] files = /etc/supervisor/conf.d/*.conf
然后直接在 conf.d
文件下新建一个sendMail.conf
[program:waaQueue]
command = php artisan queue:work
directory = (此行是你的项目绝对路径)/data/wwwroot/myself/phphub5/
process_name = %(program_name)s_%(process_num)s
numprocs = 6
autostart = true
autorestart = true
stdout_logfile = (修改为你要的log地址)/data/wwwroot/myself/phphub5/storage/logs/supervisor_waaQueue.log
stdout_logfile_maxbytes = 10MB
stderr_logfile = (修改为你要的log地址)/data/wwwroot/myself/phphub5/storage/logs/supervisor_wqqQueue.log
stderr_logfile_maxbytes = 10MB
然后执行 supervisord
报错
Error: File contains no section headers.
file: /etc/supervisor/conf.d/sendMail.conf, line: 1
'aaQueue]\n'
For help, use /usr/bin/supervisord -h
发现是我的sengMail.conf
第一行复制错了!
修改后再次执行
依然报错
Traceback (most recent call last):
File "/usr/bin/supervisord", line 9, in <module>
load_entry_point('supervisor==3.2.0', 'console_scripts', 'supervisord')()
File "/usr/lib/python2.7/dist-packages/supervisor/supervisord.py", line 367, in main
go(options)
File "/usr/lib/python2.7/dist-packages/supervisor/supervisord.py", line 377, in go
d.main()
File "/usr/lib/python2.7/dist-packages/supervisor/supervisord.py", line 77, in main
info_messages)
File "/usr/lib/python2.7/dist-packages/supervisor/options.py", line 1388, in make_logger
stdout = self.nodaemon,
File "/usr/lib/python2.7/dist-packages/supervisor/loggers.py", line 346, in getLogger
handlers.append(RotatingFileHandler(filename,'a',maxbytes,backups))
File "/usr/lib/python2.7/dist-packages/supervisor/loggers.py", line 172, in __init__
FileHandler.__init__(self, filename, mode)
File "/usr/lib/python2.7/dist-packages/supervisor/loggers.py", line 98, in __init__
self.stream = open(filename, mode)
IOError: [Errno 13] Permission denied: '/var/log/supervisor/supervisord.log'
恩!/var/log/supervisor/supervisord.log
没有写权限,执行 sudo chmod -R 777 /var/log/supervisor/supervisord.log
再次执行 supervisord
还报错
Error: Cannot open an HTTP server: socket.error reported errno.EACCES (13)
For help, use /usr/bin/supervisord -h
是/run
没有权限
执行sudo chmod 777 /run
再执行supervisord
报了个这个Unlinking stale socket /var/run/supervisor.sock
我也不知道是不是错!
不过我手机收到邮件了!
我再次执行supervisord
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.
For help, use /usr/bin/supervisord -h
说进程已经在执行了!
然后手机收到了邮件! 且!!!!!!只有一条!
点击邮件! 恩!本地用户邮件验证功能已修改好!
那么接下来是阿里云服务器里的!
同样的方法!我阿里云服务器是ubuntu14.04的
首先遇到
/usr/lib/python2.7/dist-packages/supervisor/options.py:295: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
'Supervisord is running as root and it is searching '
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.
For help, use /usr/bin/supervisord -h
不用担心,只是说用root
执行的,等级有点高,要注意!
下面一行是说已经在运行了!就不要再次运行了!
但是我没收到邮件
执行supervisorctl status
发现
waaQueue:waaQueue_0 FATAL can't find command 'php'
waaQueue:waaQueue_1 FATAL can't find command 'php'
waaQueue:waaQueue_2 FATAL can't find command 'php'
waaQueue:waaQueue_3 FATAL can't find command 'php'
waaQueue:waaQueue_4 FATAL can't find command 'php'
waaQueue:waaQueue_5 FATAL can't find command 'php'
发现说找不到php命令
我执行export PATH=$PATH:/usr/local/php/bin
php 命令不存在
再执行supervisorctl reload
就算我执行php -v
已经可以了!
但执行supervisorctl status
还是说php命令不存在
那就用绝对路径吧…
把/etc/supervisor/conf.d/sendMail.conf
里的第二行的command
后面换成 /usr/local/php/bin/php
然后重启! 差不多了!
恩! 然后收到邮件了!
本站(PHP --> Golang)已重构,代码开源
当你能力不能满足你的野心的时候,你就该沉下心来学习