phpcms表单向导提交表单同时发送邮件到用户邮箱
[ 2016/03/12, Phpcms , 5143阅, 0评 ]

需求:用户在提交表单的同时将表单内容反馈到用户填写的邮箱内。

phpcms表单向导可以设置提交表单时允许发送邮件,但是只能发送到指定邮箱内。

方法:

1、首先配置邮箱,成功后才可能发送邮件。(配置邮箱网上方法很多,如果不会配置,请自行搜索)

2、新建表单向导,并且允许发送邮件,邮件地址留空,然后添加相应字段

caec619c4f0fb52a8271f3ef697c9e9c.jpg

3、修改 phpcms\modules\formguide\index.php


大约69行左右

找到

$mails = explode(',', $setting['mails']);

修改为(代码内 email 为我建立的接收邮件地址字段,可随意修改)

if($_POST['info']['email']){

$mails = explode(',',$_POST['info']['email']);

}

else{

$mails = explode(',', $setting['mails']);

}

4、这时候提交表单已经可以成功发送邮件了,但是收到的邮件只有标题,没有内容,现在需要将自定义表单的内容发送到用户的邮箱内

继续修改刚才的文件大约71行左右

foreach ($mails as $m) {

 sendmail($m, L('tips'), $this->M['mailmessage']);

}

修改为

$f_info = $this->db->get_one(array('modelid'=>$formid, 'siteid'=>$this->siteid));
$MailSubject = '用户提交表单['.$f_info['name'].']提醒';
$Fields = getcache('formguide_field_'.$formid, 'model');
$Fields['username']['name'] = '用户名';
$Fields['datetime']['name'] = '提交时间';
$Fields['ip']['name'] = '提交IP';
unset($data['userid'], $data['datetime']);
foreach($data as $k=>$v){
  $MailBody .= $Fields[$k]['name'].':'.$v.'<br />';
}                                                
foreach ($mails as $m) {                                                        
 sendmail($m, $MailSubject, $MailBody.$this->M['mailmessage']);                                                      
}

到这里,就完成了。

有朋自远方来...评论一下呗O(∩_∩)O