{"id":23145,"date":"2025-03-14T21:46:52","date_gmt":"2025-03-14T13:46:52","guid":{"rendered":"https:\/\/web.xxmd.com\/?p=23145"},"modified":"2025-03-14T22:18:52","modified_gmt":"2025-03-14T14:18:52","slug":"commentnotifier%ef%bc%9atypecho%e5%8d%9a%e5%ae%a2%e6%96%b0%e8%af%84%e8%ae%ba%e9%82%ae%e4%bb%b6%e8%87%aa%e5%8a%a8%e6%8f%90%e9%86%92%e6%8f%92%e4%bb%b6","status":"publish","type":"post","link":"https:\/\/web.xxmd.com\/23145.html","title":{"rendered":"CommentNotifier\uff1aTypecho\u535a\u5ba2\u65b0\u8bc4\u8bba\u90ae\u4ef6\u81ea\u52a8\u63d0\u9192\u63d2\u4ef6"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u63d2\u4ef6\u4ecb\u7ecd<\/h2>\n\n\n\n<p>Typecho\u535a\u5ba2\u8bc4\u8bba\u90ae\u4ef6\u63d0\u9192\uff0c\u652f\u6301\u5f02\u6b65\u56de\u8c03\uff08\u5f02\u6b65\u56de\u8c03\u4f18\u70b9\u5c31\u662f\u51cf\u5c0f\u5bf9\u535a\u5ba2\u8bc4\u8bba\u63d0\u4ea4\u901f\u5ea6\u7684\u5f71\u54cd\uff09\uff0c\u652f\u6301\u7f16\u8f91\u90ae\u4ef6\u6a21\u677f\uff0c\u652f\u6301\u7b2c\u4e09\u65b9\u5f00\u53d1\u90ae\u4ef6\u6a21\u677f\uff0c\u53d1\u4fe1\u65b9\u5f0f\u652f\u6301SMTP\u4e0e\u963f\u91cc\u4e91\u90ae\u7bb1\u63a8\u9001\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u5b89\u88c5\u6559\u7a0b<a href=\"https:\/\/github.com\/codesbuff\/CommentNotifier#%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B\"><\/a><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4e0b\u8f7d\u540e\u5c06\u538b\u7f29\u5305\u89e3\u538b\u5230&nbsp;<code>\/usr\/plugins<\/code>&nbsp;\u76ee\u5f55<\/li>\n\n\n\n<li>\u6587\u4ef6\u5939\u540d\u6539\u4e3a<code>CommentNotifier<\/code><\/li>\n\n\n\n<li>\u767b\u5f55\u7ba1\u7406\u540e\u53f0\uff0c\u6fc0\u6d3b\u63d2\u4ef6<\/li>\n\n\n\n<li>\u914d\u7f6e\u63d2\u4ef6 \u586b\u5199SMTP\u53c2\u6570\/\u963f\u91cc\u4e91\u90ae\u7bb1\u63a8\u9001\u53c2\u6570<\/li>\n\n\n\n<li>\u652f\u6301\u663e\u793a\u5927\u90e8\u5206\u4e3b\u9898\u7684\u8bc4\u8bba\u8868\u60c5<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\u63d2\u4ef6\u5347\u7ea7<a href=\"https:\/\/github.com\/codesbuff\/CommentNotifier#%E6%8F%92%E4%BB%B6%E5%8D%87%E7%BA%A7\"><\/a><\/h4>\n\n\n\n<p>\u5c0f\u7248\u672c\u5347\u7ea7\u76f4\u63a5\u8986\u76d6\u5c31\u884c\uff0c\u5927\u7248\u672c\u5347\u7ea7\u65f6\u9700\u8981\u7981\u7528\u5220\u9664\u65e7\u7248\u672c\u7684\u6587\u4ef6\uff0c\u7136\u540e\u4f20\u65b0\u7684\u4e0a\u53bb\uff01\uff08\u5982\u679c\u76f4\u63a5\u8986\u76d6\u5347\u7ea7\u4e86\uff0c\u5c31\u7981\u7528\u91cd\u542f\u4e0b\uff09\u3002<\/p>\n\r\n            <div class=\"download-box mg-b\" id=\"download-box\" ref=\"downloadBox\">\r\n            <div>\r\n                \r\n                <div class=\"down-ready\">\r\n                    <div class=\"download-list gujia\" ref=\"gujia\">\r\n                        <div class=\"download-item\">\r\n                            <div class=\"download-thumb\" style=\"'background-image: url();'\">\r\n                            <\/div>\r\n                            <div class=\"download-rights\">\r\n                                <div class=\"download-rights-title\"><span class=\"gujia-bg\"><\/span><\/div>\r\n                                <ul>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                    <li><span class=\"gujia-bg\"><\/span><\/li>\r\n                                <\/ul>\r\n                            <\/div>\r\n                            <div class=\"download-info\">\r\n                            <div class=\"download-rights-title\"><span class=\"gujia-bg\"><\/span><\/div>\r\n                                <ul>\r\n                                <\/ul>\r\n                                <div class=\"download-current\">\r\n                                    <div class=\"\"><\/div>\r\n                                <\/div>\r\n                                <div class=\"download-button-box\">\r\n                                    <div class=\"\"><\/div>\r\n                                    <div class=\"\"><\/div>\r\n                                    <div class=\"\"><\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div> \r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"download-list\" v-cloak>\r\n                    <div v-for=\"(item,index) in list\" :class=\"'download-item b2-radius '+(item.current_user.can.allow ? 'allow-down' : 'not-allow-down')\" v-show=\"picked == index\" v-cloak>\r\n                        <div class=\"download-rights\" v-cloak>\r\n                        <div class=\"download-rights-title\"><i class=\"b2font b2-download-cloud-line1 \"><\/i>\u4e0b\u8f7d\u6743\u9650<\/div><span class=\"mobile-show\" @click=\"item.show_role = !item.show_role\">\u67e5\u770b<\/span>\r\n                            <ul v-if=\"item.show_role\">\r\n                                <li v-for=\"right in item.rights\" :class=\"right.lv == item.current_user.lv.lv.lv || right.lv == item.current_user.lv.vip.lv ? 'red' : ''\">\r\n                                    <div><span v-text=\"right.lv_name+'\uff1a'\"><\/span><\/div>\r\n                                    <div v-if=\"right.type == 'money'\">\uffe5<span v-text=\"right.value\"><\/span><\/div>\r\n                                    <div v-if=\"right.type == 'credit'\"><i class=\"b2font b2-coin-line \"><\/i><span v-text=\"right.value\"><\/span><\/div>\r\n                                    <div v-if=\"right.type == 'free'\">\u514d\u8d39\u4e0b\u8f7d<\/div>\r\n                                    <div v-if=\"right.type == 'comment'\">\u8bc4\u8bba\u5e76\u5237\u65b0\u540e\u4e0b\u8f7d<\/div>\r\n                                    <div v-if=\"right.type == 'login'\">\u767b\u5f55\u540e\u4e0b\u8f7d<\/div>\r\n                                    \r\n                                <\/li>\r\n                            <\/ul>\r\n                        <\/div>\r\n                        \r\n                        <div class=\"download-info\">\r\n                        <div class=\"download-rights-title\"><span v-text=\"item.name\"><\/span><a :href=\"item.view\" target=\"_blank\" class=\"download-view button empty text\" v-if=\"item.view\">\u67e5\u770b\u6f14\u793a<i class=\"b2font b2-arrow-right-s-line \"><\/i><\/a><\/div>\r\n                            <ul v-show=\"item.attrs.length >0\">\r\n                                <li v-for=\"attr in item.attrs\">\r\n                                    <span class=\"download-attr-name\">{{attr.name}}\uff1a<\/span>\r\n                                    <span v-html=\"attr.value\"><\/span>\r\n                                <\/li>\r\n                            <\/ul>\r\n                            <div class=\"download-current\">\r\n                                <span>\u60a8\u5f53\u524d\u7684\u7b49\u7ea7\u4e3a<\/span>\r\n                                <span v-if=\"item.current_user.lv.lv\" v-html=\"item.current_user.lv.lv.icon\"><\/span>\r\n                                <span v-if=\"item.current_user.lv.vip\" v-html=\"item.current_user.lv.vip.icon\"><\/span>\r\n                                <div class=\"\" v-if=\"!item.current_user.can.allow\">\r\n                                    <span v-if=\"item.current_user.can.type == 'login'\">\r\n                                    \u767b\u5f55\u540e\u514d\u8d39\u4e0b\u8f7d<a href=\"javascript:void(0)\" onclick=\"login.show = true;login.loginType = 1\">\u767b\u5f55<\/a>\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.lv.lv.lv == 'dark_room'\">\r\n                                    \u5c0f\u9ed1\u5c4b\u53cd\u601d\u4e2d\uff0c\u4e0d\u51c6\u4e0b\u8f7d\uff01\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.can.type == 'comment'\">\r\n                                    \u8bc4\u8bba\u540e\u5237\u65b0\u9875\u9762\u4e0b\u8f7d<a href=\"#respond\">\u8bc4\u8bba<\/a>\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.lv.lv.lv == 'guest' && !item.current_user.guest\">\r\n                                        <span v-show=\"list[index].rights[0].lv == 'all'\" v-cloak>\u652f\u4ed8<b><template v-if=\"item.current_user.can.type == 'credit'\"><i class=\"b2font b2-coin-line \"><\/i><\/template><template v-else>\uffe5<\/template><i v-html=\"list[index].current_user.can.value\"><\/i><\/b>\u4ee5\u540e\u4e0b\u8f7d<\/span>\r\n                                        \u8bf7\u5148<a href=\"javascript:void(0)\" onclick=\"login.show = true;login.loginType = 1\">\u767b\u5f55<\/a>\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.can.type == 'full'\" class=\"green\">\r\n                                        \u60a8\u4eca\u5929\u7684\u4e0b\u8f7d\u6b21\u6570\uff08<b v-text=\"item.current_user.can.total_count\"><\/b>\u6b21\uff09\u7528\u5b8c\u4e86\uff0c\u8bf7\u660e\u5929\u518d\u6765\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.can.type == 'credit'\">\r\n                                        \u652f\u4ed8\u79ef\u5206<b><i class=\"b2font b2-coin-line \"><\/i><i v-html=\"list[index].current_user.can.value\"><\/i><\/b>\u4ee5\u540e\u4e0b\u8f7d<a href=\"javascript:void(0)\" @click=\"credit(index)\">\u7acb\u5373\u652f\u4ed8<\/a>\r\n                                    <\/span>\r\n                                    <span v-else-if=\"item.current_user.can.type == 'money'\">\r\n                                        \u652f\u4ed8<b v-text=\"'\uffe5'+list[index].current_user.can.value\"><\/b>\u4ee5\u540e\u4e0b\u8f7d<a href=\"javascript:void(0)\" @click=\"pay(index)\">\u7acb\u5373\u652f\u4ed8<\/a>\r\n                                    <\/span>\r\n                                    \r\n                                    <span v-else>\r\n                                        \u60a8\u5f53\u524d\u7684\u7528\u6237\u7ec4\u4e0d\u5141\u8bb8\u4e0b\u8f7d<a href=\"https:\/\/web.xxmd.com\/vips\" target=\"_blank\">\u5347\u7ea7\u4f1a\u5458<\/a>\r\n                                    <\/span>\r\n                                <\/div>\r\n                                <div class=\"\" v-else>\r\n                                    <span v-if=\"item.current_user.current_guest == 0 || item.current_user.can.free_down\" class=\"green\">\r\n                                        \u60a8\u5df2\u83b7\u5f97\u4e0b\u8f7d\u6743\u9650\r\n                                    <\/span>\r\n                                    <span class=\"green\" v-else>\r\n                                        \u60a8\u53ef\u4ee5\u6bcf\u5929\u4e0b\u8f7d\u8d44\u6e90<b v-text=\"item.current_user.can.total_count\"><\/b>\u6b21\uff0c\u4eca\u65e5\u5269\u4f59<b v-text=\"item.current_user.can.count\"><\/b>\u6b21\r\n                                    <\/span>\r\n                                <\/div>\r\n                            <\/div>\r\n                            <div class=\"download-button-box\">\r\n                                <button @click=\"go(b.link,item.current_user.can.allow,item,index)\" class=\"button\" v-text=\"b.name\" v-for=\"b in item.button\"><\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        ","protected":false},"excerpt":{"rendered":"<p>\u63d2\u4ef6\u4ecb\u7ecd Typecho\u535a\u5ba2\u8bc4\u8bba\u90ae\u4ef6\u63d0\u9192\uff0c\u652f\u6301\u5f02\u6b65\u56de\u8c03\uff08\u5f02\u6b65\u56de\u8c03\u4f18\u70b9\u5c31\u662f\u51cf\u5c0f\u5bf9\u535a\u5ba2\u8bc4\u8bba\u63d0\u4ea4\u901f\u5ea6\u7684\u5f71\u54cd\uff09\uff0c\u652f\u6301\u7f16\u8f91\u90ae\u4ef6\u6a21\u677f\uff0c\u652f\u6301\u7b2c\u4e09\u65b9\u5f00\u53d1\u90ae\u4ef6\u6a21\u677f\uff0c\u53d1\u4fe1\u65b9\u5f0f\u652f\u6301SMTP\u4e0e\u963f\u91cc\u4e91\u90ae\u7bb1\u63a8\u9001\u3002 \u5b89\u88c5\u6559\u7a0b \u63d2\u4ef6\u5347\u7ea7 \u5c0f\u7248\u672c\u5347\u7ea7\u76f4\u63a5\u8986\u76d6\u5c31\u884c\uff0c\u5927\u7248\u672c\u5347\u7ea7\u65f6\u9700\u8981\u7981\u7528\u5220\u9664\u65e7\u7248\u672c\u7684\u6587\u4ef6\uff0c\u7136\u540e\u4f20\u65b0\u7684\u4e0a\u53bb\uff01\uff08\u5982\u679c\u76f4\u63a5\u8986\u76d6\u5347\u7ea7\u4e86\uff0c\u5c31\u7981\u7528\u91cd\u542f\u4e0b\uff09\u3002 \u4e0b\u8f7d\u6743\u9650\u67e5\u770b \uffe5 \u514d\u8d39\u4e0b\u8f7d \u8bc4\u8bba\u5e76\u5237\u65b0\u540e\u4e0b\u8f7d \u767b\u5f55\u540e\u4e0b\u8f7d \u67e5\u770b\u6f14\u793a {{attr.name}}\uff1a \u60a8\u5f53\u524d\u7684\u7b49\u7ea7\u4e3a \u767b\u5f55\u540e\u514d\u8d39\u4e0b\u8f7d\u767b\u5f55 \u5c0f\u9ed1\u5c4b\u53cd\u601d\u4e2d\uff0c\u4e0d\u51c6\u4e0b\u8f7d\uff01 \u8bc4\u8bba\u540e\u5237\u65b0\u9875\u9762\u4e0b\u8f7d\u8bc4\u8bba \u652f\u4ed8\uffe5\u4ee5\u540e\u4e0b<\/p>\n","protected":false},"author":1,"featured_media":23147,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2126],"tags":[4805,3928,2128,2180,4806,4807],"collection":[],"class_list":{"0":"post-23145","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-typecho-plugins","8":"tag-typecho","12":"tag-4806","13":"tag-4807"},"_links":{"self":[{"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/posts\/23145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/comments?post=23145"}],"version-history":[{"count":3,"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/posts\/23145\/revisions"}],"predecessor-version":[{"id":23150,"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/posts\/23145\/revisions\/23150"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/media\/23147"}],"wp:attachment":[{"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/media?parent=23145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/categories?post=23145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/tags?post=23145"},{"taxonomy":"collection","embeddable":true,"href":"https:\/\/web.xxmd.com\/wp-json\/wp\/v2\/collection?post=23145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}