批量删除群发列表 批量删除邮箱地址 (传递以逗号分隔的字符串如 21,22 或者传递一维数组如 id[]=21&id[]=22) (使用array_keys和array_values直接转二维数组成一维数组) (批量删除sql语句使用in实现,delete from mass_list_detail{tid} where user_email_id=:user_email_id and mass_id in(%s)) (做纯数字检测,使用了ctype_digit函数)
导入文件增加邮箱地址 使用文本域增加邮箱地址 (代码基本一样,使用同一个接口地址,增加一个type的参数进行区分判断)
获取群发列表接口 (每个群发列表中邮箱成员个数的计算,使用一条sql语句实现 select count(mass_id) as n,mass_id from mass_list_detail4 where user_email_id=:user_email_id group by mass_id )
获取邮箱地址列表接口 (注意到了联合索引的最左前缀原则 key(user_email_id,mass_id) select * from mass_list_detail{tid} where user_email_id=:user_email_id and mass_id=:mass_id )
发信接口: from(发件人) to(群发列表id) subject(邮件主题) msgtxt(邮件正文) is_save(是否保存) att_swf(附件信息)
拼接好邮件eml文件后,保存到/mnt/entmail/目录位置 添加进队列 "from|to|邮件文件地址" 定时任务取出队列内容,拿到邮件文件,替换收件人,调用smtp发送
新建群发列表,导入邮箱地址: 1.新建时直接导入文件 2.单用户每人限制50个群发列表 3.每个列表中的邮箱地址限制1000个 4.列表中邮箱去掉格式不正确的和重复的 5.判断列表名称不能为空 6.判断导入文件的大小不能太大,不能为空 7.返回成功,失败,总共的条数
对已存在的列表进行再次导入邮箱地址: 1.要求同上 2.判断列表是否存在 3.已存在邮箱地址加上新导入地址不得超过1000
获取邮箱地址列表接口: 1.全部取出 2.保留分页功能
删除群发列表接口 删除邮箱地址接口
建表申请: CREATE TABLE `deluserlog` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `enterpriseId` int(10) unsigned NOT NULL DEFAULT '0', `emailid` int(10) unsigned NOT NULL DEFAULT '0', `email` char(50) NOT NULL DEFAULT '', `status` int(10) unsigned NOT NULL DEFAULT '0', `time` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
获取邮箱地址列表的分页部分主要代码: $this->sum=empty($this->sum) ? 0:$this->sum; $this->pagenum=ceil($this->sum/$this->pagesize); $this->pageno=empty($req->pageno)? 1 : $req->pageno; $start=($pageno-1)*$pagesize; $end=$pagesize; $preSql="select * from mass_list_detail{tid} where user_email_id=:user_email_id and mass_id=:mass_id order by id desc limit {$start},{$end}"; $preSql=$this->makeSql($preSql);