app->getConf('email.config.sendway'));exit; $this->pagedata['options'] = $this->getOptions(); $this->pagedata['messengername'] = "messenger"; $this->display('email/config.html'); } function getOptions(){ return array( 'sendway'=>array('label'=>app::get('desktop')->_('发送方式'),'type'=>'radio','options'=>array('mail'=>app::get('desktop')->_("使用本服务器发送"),'smtp'=>app::get('desktop')->_("使用外部SMTP发送")),'value'=>$this->app->getConf('email.config.sendway')?$this->app->getConf('email.config.sendway'):"mail"), 'usermail'=>array('label'=>app::get('desktop')->_('发信人邮箱'),'type'=>'input','value'=>$this->app->getConf('email.config.sendway')?$this->app->getConf('email.config.usermail'):'yourname@domain.com'), 'smtpserver'=>array('label'=>app::get('desktop')->_('smtp服务器地址'),'type'=>'input','value'=>$this->app->getConf('email.config.smtpserver')?$this->app->getConf('email.config.smtpserver'):'mail.domain.com'), 'smtpport'=>array('label'=>app::get('desktop')->_('smtp服务器端口'),'type'=>'input','value'=>$this->app->getConf('email.config.smtpport')?$this->app->getConf('email.config.smtpport'):'25'), 'smtpuname'=>array('label'=>app::get('desktop')->_('smtp用户名'),'type'=>'input','value'=>$this->app->getConf('email.config.smtpuname')?$this->app->getConf('email.config.smtpuname'):''), 'smtppasswd'=>array('label'=>app::get('desktop')->_('smtp密码'),'type'=>'password','value'=>$this->app->getConf('email.config.smtppasswd')?$this->app->getConf('email.config.smtppasswd'):'') ); } function saveCfg(){ # $this->begin('index.php?app=desktop&ctl=email&act=setting'); $this->begin(); foreach($_POST['config'] as $key=>$value){ $this->app->setConf('email.config.'.$key,$value); } $this->end(true,app::get('desktop')->_('配置保存成功')); } function testEmail(){ $this->pagedata['options'] = $_GET['config']; if ($_GET['config']['sendway']=="mail") $this->pagedata['acceptor']=$_GET['config']['usermail']; $this->display('email/testemail.html'); } function doTestemail(){ $usermail = $_POST['usermail']; //发件账户 $smtpport = $_POST['smtpport']; //端口号 $smtpserver = $_POST['smtpserver']; //邮件服务器 $smtpuname = $_POST['smtpuname']; //账户名称 $smtppasswd = $_POST['smtppasswd'];//账户密码 $acceptor = $_POST['acceptor']; //收件人邮箱 $subject = app::get('desktop')->_("来自[").app::get('site')->getConf('site.name').app::get('desktop')->_("]网店的测试邮件"); $body = app::get('desktop')->_("这是一封测试邮箱配置的邮件,您的网店能正常发送邮件。"); switch ($_POST['sendway']){ case 'smtp': $email = kernel::single('desktop_email_email'); $loginfo = app::get('desktop')->_("无法发送测试邮件,下面是出错信息:"); if ($email->ready($_POST)){ $res = $email->send($acceptor,$subject,$body,$_POST); if ($res) $loginfo = app::get('desktop')->_("已成功发送一封测试邮件,请查看接收邮箱。"); if ($email->errorinfo){ $err=$email->errorinfo; $loginfo .= "
".$err['error']; } } else{ $loginfo .= "
".var_export($email->smtp->error,true); } echo $loginfo; break; case 'mail': ini_set('SMTP',$smtpserver); ini_set('smtp_port',$smtpport); ini_set('sendmail_from',$usermail); $email = kernel::single('desktop_email_email'); $subject=$email->inlineCode($subject); $header = array( 'Return-path'=>'<'.$usermail.'>', 'Date'=>date('r'), 'From'=>$email->inlineCode($this->app->getConf('system.shopname')).'<'.$usermail.'>', 'MIME-Version'=>'1.0', //'Subject'=>$subject, //'To'=>$acceptor, 'Content-Type'=>'text/html; charset=UTF-8; format=flowed', 'Content-Transfer-Encoding'=>'base64' ); $body=chunk_split(base64_encode($body)); $header=$email->buildHeader($header); if(mail($acceptor, $subject, $body, $header)){ echo app::get('desktop')->_("发送成功!"); } else{ echo app::get('desktop')->_("发送失败,请检查邮箱配置!"); } break; } } } ?>