需求:用户在提交表单的同时将表单内容反馈到用户填写的邮箱内。
phpcms表单向导可以设置提交表单时允许发送邮件,但是只能发送到指定邮箱内。
方法:
1、首先配置邮箱,成功后才可能发送邮件。(配置邮箱网上方法很多,如果不会配置,请自行搜索)
2、新建表单向导,并且允许发送邮件,邮件地址留空,然后添加相应字段
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.'
';
}
foreach ($mails as $m) {
sendmail($m, $MailSubject, $MailBody.$this->M['mailmessage']);
}
到这里,就完成了。