国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
4.5KB

  1. <?php
  2. require_once(dirname(__FILE__)."/config.php");
  3. CheckRank(0,0);
  4. $menutype = 'mydede';
  5. setcookie("ENV_GOBACK_URL",$dedeNowurl,time()+3600,"/");
  6. $dopost = isset($dopost) ? trim($dopost) : '';
  7. $folder = isset($folder) ? trim($folder) : '';
  8. $mid = $cfg_ml->M_ID;
  9. if($dopost == '')
  10. {
  11. if($cfg_mb_spacesta!="-10"){
  12. if($cfg_checkemail=='Y'){
  13. $row=$dsql->GetOne("SELECT email,checkmail FROM `#@__member` WHERE mid=$mid");
  14. if($row['checkmail']=="-1"){
  15. $msg="邮件订阅需要您先进行邮箱验证!</br><a href='mail.php?dopost=sendmail'>点击进行验证</a>";
  16. ShowMsg($msg,'-1');
  17. exit();
  18. }
  19. }
  20. }
  21. $db->SetQuery("SELECT typeid FROM `#@__mail_order` WHERE mid=$mid");
  22. $db->Execute();
  23. $typeid="";
  24. while($row = $db->GetArray())
  25. {
  26. $typeid.=$row['typeid'].",";
  27. }
  28. if($folder=="drop"){
  29. $dsql->SetQuery("SELECT t.*,o.mid FROM `#@__mail_type` AS t LEFT JOIN `#@__mail_order` AS o ON t.id=o.typeid WHERE mid=$mid ORDER BY t.id asc");
  30. $dsql->Execute();
  31. while($arr = $dsql->GetArray())
  32. {
  33. $rows[]=$arr;
  34. }
  35. $rows=empty($rows)? "" : $rows;
  36. $tpl = new DedeTemplate();
  37. $tpl->LoadTemplate(DEDEMEMBER.'/templets/mail_drop.htm');
  38. $tpl->Display();
  39. }else{
  40. $typeid=explode(",",$typeid);
  41. $dsql->SetQuery("SELECT * FROM `#@__mail_type` ORDER BY id asc");
  42. $dsql->Execute();
  43. $inputbox="";
  44. while($row = $dsql->GetObject())
  45. {
  46. if(in_array($row->id,$typeid)){
  47. $inputbox.="<li><input type='checkbox' name='mailtype[]' id='{$row->id}' value='{$row->id}' class='np' checked/> <label>{$row->typename}</label></li>\r\n";
  48. }else{
  49. $inputbox.="<li><input type='checkbox' name='mailtype[]' id='{$row->id}' value='{$row->id}' class='np' /> <label>{$row->typename}</label></li>\r\n";
  50. }
  51. }
  52. $tpl = new DedeTemplate();
  53. $tpl->LoadTemplate(DEDEMEMBER.'/templets/mail.htm');
  54. $tpl->Display();
  55. }
  56. }elseif($dopost == 'save' || $dopost == 'drop'){
  57. $mailtype=empty($mailtype)? "" : $mailtype;
  58. $dsql->ExecuteNoneQuery("DELETE FROM #@__mail_order WHERE mid=$mid");
  59. if($dopost == 'save' && $mailtype==""){
  60. ShowMsg("请选择订阅类型!",'mail.php');
  61. exit();
  62. }
  63. if($dopost=="save") $msg="订阅成功!";
  64. elseif($dopost=="drop") $msg="退订成功!";
  65. if(is_array($mailtype)){
  66. foreach($mailtype as $type){
  67. $dsql->ExecuteNoneQuery("INSERT INTO #@__mail_order(`typeid` , `mid`)VALUES ('$type', '$mid')");
  68. }
  69. }
  70. ShowMsg($msg,'mail.php');
  71. exit();
  72. }elseif($dopost=='sendmail'){
  73. $userhash = md5($cfg_cookie_encode.'--'.$cfg_ml->fields['mid'].'--'.$cfg_ml->fields['email']);
  74. $url = $cfg_basehost.(empty($cfg_cmspath) ? '/' : $cfg_cmspath)."/member/mail.php?dopost=checkmail&mid={$cfg_ml->fields['mid']}&userhash={$userhash}&do=1";
  75. $url = eregi_replace('http://', '', $url);
  76. $url = 'http://'.eregi_replace('//', '/', $url);
  77. $mailtitle = "{$cfg_webname}--会员邮件验证通知";
  78. $mailbody = '';
  79. $mailbody .= "尊敬的用户[{$cfg_ml->fields['uname']}],您好:\r\n";
  80. $mailbody .= "欢迎使用邮件订阅功能。\r\n";
  81. $mailbody .= "要通过验证,请点击或复制下面链接到地址栏访问这地址:\r\n\r\n";
  82. $mailbody .= "{$url}\r\n\r\n";
  83. if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server))
  84. {
  85. $mailtype = 'TXT';
  86. require_once(DEDEINC.'/mail.class.php');
  87. $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
  88. $smtp->debug = false;
  89. if(!$smtp->smtp_sockopen($cfg_smtp_server)){
  90. ShowMsg('邮件发送失败,请联系管理员','index.php');
  91. exit();
  92. }
  93. $smtp->sendmail($cfg_ml->fields['email'], $cfg_webname,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
  94. }else{
  95. @mail($cfg_ml->fields['email'], $mailtitle, $mailbody);
  96. }
  97. if(empty($cfg_smtp_server)){
  98. ShowMsg('邮件发送失败,请联系管理员','index.php');
  99. exit();
  100. }else{
  101. ShowMsg('成功发送邮件,请登录你的邮箱进行接收!', 'index.php');
  102. exit();
  103. }
  104. }else if($dopost=='checkmail'){
  105. $mid = intval($mid);
  106. if(empty($mid))
  107. {
  108. ShowMsg('你的效验串不合法!', '-1');
  109. exit();
  110. }
  111. $row = $dsql->GetOne("Select * From `#@__member` where mid='{$mid}' ");
  112. $needUserhash = md5($cfg_cookie_encode.'--'.$mid.'--'.$row['email']);
  113. if($needUserhash != $userhash)
  114. {
  115. ShowMsg('你的效验串不合法!', '-1');
  116. exit();
  117. }
  118. $dsql->ExecuteNoneQuery("Update `#@__member` set checkmail=0 where mid='{$mid}' ");
  119. ShowMsg('操作成功,欢迎使用邮件订阅!', 'mail.php');
  120. exit();
  121. }
  122. ?>