linux 计划任务定时发邮件 phpmailer 和 thinkphp
来源:互联网 发布:知乎双刀周杰伦 编辑:程序博客网 时间:2024/04/28 14:45
前天看了下,有人用phpmailer发邮件的例子,在thinkphp普通模式下。而我是想实现linux下计划任务(需TP的CLI模式不然url参数的地址请求打不过去,可能也有别的办法吧...)去定时发邮件目的。大部分顺利 当然也有注意的地方, 过程分享下废话说多了,往下看。
1. 基于tp实现首先得下载个完整在tp,我是tp3.1
http://www.thinkphp.cn/down/338.html
2.phpmailer也少不了
https://github.com/PHPMailer/PHPMailer,解压后在ThinkPHP\Extend\Vendor\PHPMailer
3.配置参数
index.php 加一句
define('MODE_NAME', 'cli'); // 采用CLI运行模式运行
还有包含thinkphp目录要写绝对路径
项目下config.php
//邮件
'THINK_EMAIL' => array('SMTP_HOST' => 'smtp.163.com', //SMTP服务器'SMTP_PORT' => '25', //SMTP服务器端口'SMTP_USER' => '**********', //SMTP服务器用户名'SMTP_PASS' => '**********', //SMTP服务器密码'FROM_EMAIL' => '**********', //发件人EMAIL'FROM_NAME' => '', //发件人名称'REPLY_EMAIL' => '', //回复EMAIL(留空则为发件人EMAIL)'REPLY_NAME' => '', //回复名称(留空则为发件人名称)),
4.发送函数写在common下便于使用
/** * 系统邮件发送函数 * @param string $to 接收邮件者邮箱 * @param string $name 接收邮件者名称 * @param string $subject 邮件主题 * @param string $body 邮件内容 * @param string $attachment 附件列表 * @return boolean */function send_mail($to, $name, $subject = '', $body = '', $attachment = null){ $config = C('THINK_EMAIL'); vendor('PHPMailer.class#phpmailer'); //从PHPMailer目录导class.phpmailer.php类文件 $mail = new PHPMailer(); $mail->CharSet = 'UTF-8'; //设定邮件编码 $mail->IsSMTP(); // 设定使用SMTP服务 $mail->SMTPDebug = 1; // 0关闭SMTP调试功能 // 1 = errors and messages // 2 = messages only $mail->SMTPAuth = true; // 启用 SMTP 验证功能 //$mail->SMTPSecure = 'ssl'; // 使用安全协议 $mail->Host = $config['SMTP_HOST']; // SMTP 服务器 $mail->Port = $config['SMTP_PORT']; // SMTP服务器的端口号 $mail->Username = $config['SMTP_USER']; // SMTP服务器用户名 $mail->Password = $config['SMTP_PASS']; // SMTP服务器密码 $mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']); $replyEmail = $config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL']; $replyName = $config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME']; $mail->AddReplyTo($replyEmail, $replyName); $mail->Subject = $subject; $mail->MsgHTML($body);if(is_array($to)){foreach ($to as $mail_add){ $mail->AddAddress($mail_add, ''); }} if(is_array($attachment)){ // 添加附件 foreach ($attachment as $file){ is_file($file) && $mail->AddAttachment($file); } } return $mail->Send() ? true : false;}
5. 模块/动作
//crontab 自动发邮件class IndexAction extends Action {public function auto(){$config = C('EMAIL_CONTENT_INFO');//发送邮件$res = send_mail($config['EMAIL'], '', $config['SUBJECT'], $config['CONTENT'], $filename);//filename 有附件添加附加附件......}
6.添加到crontab 5分钟发一次
调用:模块/动作/参数
*/5 * * * * root /usr/local/php/bin/php -f /home/www/index.php Index/auto
记录了简单日志后发现,哈哈 大功告成 ! 不知是不是调的太频繁 只有一条发送失败了。
0 0
- linux 计划任务定时发邮件 phpmailer 和 thinkphp
- thinkphp计划任务定时给客户发邮件
- Thinkphp结合PHPMailer发邮件
- thinkphp5和phpmailer发邮件
- 使用Spring来发邮件和执行定时任务
- thinkPHP PHPMailer 发送邮件
- thinkphp phpmailer发送邮件
- thinkphp phpmailer发送邮件
- linux定时任务计划
- phpMailer类发邮件
- 发邮件技术PhpMailer
- PHPMailer发邮件
- Spring的定时发邮件任务
- thinkphp引入phpmailer发送邮件
- Thinkphp使用PHPMailer发送邮件
- linux定时执行--计划任务
- linux定时任务计划contab
- php发邮件phpmailer示例
- 金蝶K3管理软件PDA条码解决方案,盘点机与金蝶K3无缝对接
- 插入排序
- cocos2d-x 3.0 final 移植 android
- Android实战技巧:ViewStub的应用
- QWT
- linux 计划任务定时发邮件 phpmailer 和 thinkphp
- Android模糊示例-RenderScript-附效果图与代码
- How Many Points of Intersection?
- ios的手势操作之UIGestureRecognizer浅析
- CCS Cannot open soure file "***"
- 模拟——Parencodings
- codeforces 15C Industrial Nim(NIM 博弈)
- 陽卦多陰章
- Android之网络下载与图片解码-----网络图片浏览器