PHPCMS v9表单向导提交表单同时发送邮件到用户邮箱

时间:2014-10-14 14:14:42  来源:宅虫网  作者:June

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

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


方法:

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


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

PHPCMS v9表单向导提交表单同时发送邮件到用户邮箱


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']);                                                      
}


到这里,就完成了。

顶一下
返回首页
回首页
收藏
收藏

参与评论(条)

注: 网友评论仅供表达个人看法,并不表达本站同意其观点或证实其描述