昨天没事看到官网邮件发送插件,发送的邮件有点太简单,不够美观,于是开始折腾,一直折腾到凌晨2点,终于全部搞定了,上个效果图:
还有另外一个样式自己留着用,有想改的也可以在下面的代码里修改,上代码(是以3.8版本作为基础的,其他版本不保证能用,代码需要适当修改,更名为kl_sendmail.php放在content\plugins\kl_sendmail插件目录,这样原文件的备份)
<?php /* Plugin Name: Sendmail Version: 3.8 Plugin URL: http://kller.cn/?post=61 Description: 发送博客留言至E-mail。 Author: KLLER Author Email: kller@foxmail.com Author URL: http://kller.cn */ !defined('EMLOG_ROOT') && exit('access deined!'); require_once(EMLOG_ROOT.'/content/plugins/kl_sendmail/class/class.smtp.php'); require_once(EMLOG_ROOT.'/content/plugins/kl_sendmail/class/class.phpmailer.php'); function kl_sendmail_do($mailserver, $port, $mailuser, $mailpass, $mailto, $subject, $content, $fromname) { $mail = new KL_SENDMAIL_PHPMailer(); $mail->CharSet = "UTF-8"; $mail->Encoding = "base64"; $mail->Port = $port; if(KL_MAIL_SENDTYPE == 1) { $mail->IsSMTP(); }else{ $mail->IsMail(); } $mail->Host = $mailserver; $mail->SMTPAuth = true; $mail->Username = $mailuser; $mail->Password = $mailpass; $mail->From = $mailuser; $mail->FromName = $fromname; $mail->AddAddress($mailto); $mail->WordWrap = 500; $mail->IsHTML(true); $mail->Subject = $subject; $mail->Body = $content; $mail->AltBody = "This is the body in plain text for non-HTML mail clients"; if($mail->Host == 'smtp.gmail.com') $mail->SMTPSecure = "ssl"; if(!$mail->Send()) { echo $mail->ErrorInfo; return false; }else{ return true; } } function kl_sendmail_get_comment_mail() { include(EMLOG_ROOT.'/content/plugins/kl_sendmail/kl_sendmail_config.php'); if(KL_IS_SEND_MAIL == 'Y' || KL_IS_REPLY_MAIL == 'Y') { $comname = isset($_POST['comname']) ? addslashes(trim($_POST['comname'])) : ''; $comment = isset($_POST['comment']) ? addslashes(trim($_POST['comment'])) : ''; $commail = isset($_POST['commail']) ? addslashes(trim($_POST['commail'])) : ''; $comurl = isset($_POST['comurl']) ? addslashes(trim($_POST['comurl'])) : ''; $gid = isset($_POST['gid']) ? intval($_POST['gid']) : (isset($_GET['gid']) ? intval($_GET['gid']) : -1); $pid = isset($_POST['pid']) ? intval($_POST['pid']) : 0; $http_referer = empty($_SERVER['HTTP_REFERER']) ? BLOG_URL : $_SERVER['HTTP_REFERER']; $blogname = Option::get('blogname'); $Log_Model = new Log_Model(); $logData = $Log_Model->getOneLogForHome($gid); $log_title = $logData['log_title']; $subject = "日志《{$log_title}》收到了新的评论"; if(strpos(KL_MAIL_TOEMAIL, '@139.com') === false) { $content = "评论内容:{$comment}<br /><br />发件人:".$comname."<br />"; if(!empty($commail)) $content .= "Email:{$commail}<br />"; if(!empty($comurl)) $content .= "主页:{$comurl}<br />"; $content .= "<br /><strong>=> 现在就前往<a href=\"{$http_referer}\" target=\"_blank\">日志页面</a>进行查看</strong><br />"; }else{ $content = $comment; } if(KL_IS_SEND_MAIL == 'Y') { if(ROLE == 'visitor') kl_sendmail_do(KL_MAIL_SMTP, KL_MAIL_PORT, KL_MAIL_SENDEMAIL, KL_MAIL_PASSWORD, KL_MAIL_TOEMAIL, $subject, $content, $blogname); } if(KL_IS_REPLY_MAIL == 'Y') { if($pid > 0) { $DB = Option::EMLOG_VERSION >= '5.3.0' ? Database::getInstance() : MySql::getInstance(); $Comment_Model = new Comment_Model(); $pinfo = $Comment_Model->getOneComment($pid); if(!empty($pinfo['mail'])) { $subject = "您在【骑猪看月亮】发表的评论收到了回复"; $content =' <div align="center" style="font: 13px/1.5 microsoft yahei,Verdana,Arial,Helvetica,sans-serif;"> <br/><br/> <div align="left" style="text-decoration:none;width:580px;font-size:14px;padding:10px 15px;margin-bottom:20px;border:1px solid #ccc;border-radius:4px;"> <div align="center"><strong><span style="font-size:28px;color:#08d;">骑猪看月亮</span></strong></div> <p><strong>'.$pinfo['poster'].'</strong> , 您好:</p> <p><strong> 您之前在 《'.$log_title.'》 发表的的评论:</strong></p> <p> '.$pinfo['comment'].'</p> <p><strong>'.$comname.'</strong> 给您的回复:</p> <p> '.$comment.'</p> <p><strong>您可以点击 <a href="'.Url::log($gid).'" style="text-decoration: none;outline:none;" target="_blank">查看该日志</a></strong></p> <p><strong>感谢您对 <a href="'.BLOG_URL.'" style="text-decoration: none;outline:none;" target="_blank">'.$blogname.'</a> 的关注, 欢迎 <a href="'.BLOG_URL.'rss.php" style="text-decoration: none;outline:none;" target="_blank">订阅本站</a></strong></p> <p style="color:#999; margin:26px 0 0 0; font-size:12px;"> 骑猪看月亮的博客:<a href="https://www.ipve.cn" target="_blank" style="color:#999;">https://www.ipve.cn</a><br> <span style="text-align:right;background:#ccc;height:1px;widli:100%;overflow:hidden;display:block;margin:8px 0;"></span> 骑猪看月亮<br> '.gmdate("Y年 m月 d日",time()+8*3600).' </p> </div> <p>Powered by <a href="https://www.ipve.cn" style="text-decoration: none;outline:none;" target="_blank" title="骑猪看月亮">www.ipve.cn</a></p> <br/> </div>'; kl_sendmail_do(KL_MAIL_SMTP, KL_MAIL_PORT, KL_MAIL_SENDEMAIL, KL_MAIL_PASSWORD, $pinfo['mail'], $subject, $content, $blogname); } } } }else{ return; } } addAction('comment_saved', 'kl_sendmail_get_comment_mail'); function kl_sendmail_get_twitter_mail($r, $name, $date, $tid) { include(EMLOG_ROOT.'/content/plugins/kl_sendmail/kl_sendmail_config.php'); if(KL_IS_TWITTER_MAIL == 'Y') { $DB = Option::EMLOG_VERSION >= '5.3.0' ? Database::getInstance() : MySql::getInstance(); $blogname = Option::get('blogname'); $sql = "select a.content, b.username from ".DB_PREFIX."twitter a left join ".DB_PREFIX."user b on b.uid=a.author where a.id={$tid}"; $res = $DB->query($sql); $row = $DB->fetch_array($res); $author = $row['username']; $twitter = $row['content']; $subject = "{$author}发布的碎语收到了新的回复"; if(strpos(KL_MAIL_TOEMAIL, '@139.com') === false) { $content = "{$author}发布的碎语:{$twitter}<br /><br />{$name}对碎语的回复:{$r}<br /><br /><strong>=> 现在就前往<a href=\"{$_SERVER['HTTP_REFERER']}\" target=\"_blank\">碎语页面</a>进行查看</strong><br />"; }else{ $content = $r; } if(ROLE == 'visitor') kl_sendmail_do(KL_MAIL_SMTP, KL_MAIL_PORT, KL_MAIL_SENDEMAIL, KL_MAIL_PASSWORD, KL_MAIL_TOEMAIL, $subject, $content, $blogname); } } addAction('reply_twitter', 'kl_sendmail_get_twitter_mail'); function kl_sendmail_put_reply_mail($commentId, $reply) { global $userData; include(EMLOG_ROOT.'/content/plugins/kl_sendmail/kl_sendmail_config.php'); if(KL_IS_REPLY_MAIL == 'Y') { $DB = Option::EMLOG_VERSION >= '5.3.0' ? Database::getInstance() : MySql::getInstance(); $blogname = Option::get('blogname'); $Comment_Model = new Comment_Model(); $commentArray = $Comment_Model->getOneComment($commentId); extract($commentArray); $subject="您在【{$blogname}】发表的评论收到了回复"; if(strpos($mail, '@139.com') === false) { $emBlog = new Log_Model(); $logData = $emBlog->getOneLogForHome($gid); $log_title = $logData['log_title']; $content = ' <div align="center" style="font: 13px/1.5 microsoft yahei,Verdana,Arial,Helvetica,sans-serif;"> <br/><br/> <div align="left" style="text-decoration:none;width:580px;font-size:14px;padding:10px 15px;margin-bottom:20px;border:1px solid #ccc;border-radius:4px;"> <div align="center"><strong><span style="font-size:28px;color:#08d;">骑猪看月亮</span></strong></div> <p><strong>'.$poster.'</strong> ,您好:</p> <p><strong> 您之前在 《'.$log_title.'》 发表的的评论:</strong></p> <p> '.$comment.'</p> <p><strong>'.$userData['nickname'].'</strong> 给您的回复:</p> <p> '.$reply.'</p> <p><strong>您可以点击 <a href="'.Url::log($gid).'" style="text-decoration: none;outline:none;" target="_blank">查看该日志</a></strong></p> <p><strong>感谢您对 <a href="'.BLOG_URL.'" style="text-decoration: none;outline:none;" target="_blank">'.$blogname.'</a> 的关注, 欢迎 <a href="'.BLOG_URL.'rss.php" style="text-decoration: none;outline:none;" target="_blank">订阅本站</a></strong></p> <p style="color:#999; margin:26px 0 0 0; font-size:12px;"> 骑猪看月亮的博客:<a href="https://www.ipve.cn" target="_blank" style="color:#999;">https://www.ipve.cn</a><br> <span style="text-align:right;background:#ccc;height:1px;widli:100%;overflow:hidden;display:block;margin:8px 0;"></span> 骑猪看月亮<br> '.gmdate("Y年 m月 d日",time()+8*3600).' </p> </div> <p>Powered by <a href="https://www.ipve.cn" style="text-decoration: none;outline:none;" target="_blank" title="骑猪看月亮">www.ipve.cn</a></p> <br/> </div>'; }else{ $content = $reply; } if($mail != '') kl_sendmail_do(KL_MAIL_SMTP, KL_MAIL_PORT, KL_MAIL_SENDEMAIL, KL_MAIL_PASSWORD, $mail, $subject, $content, $blogname); }else{ return; } } addAction('comment_reply', 'kl_sendmail_put_reply_mail'); function kl_sendmail_menu() { echo '<div class="sidebarsubmenu" id="kl_sendmail"><a href="./plugin.php?plugin=kl_sendmail">sendmail</a></div>'; } addAction('adm_sidebar_ext', 'kl_sendmail_menu'); ?>