Уведомления о комментариях
Когда пользователь оставляет комментарий на сайте или отвечает на комментарий, Waline может отправлять уведомления по электронной почте или в WeChat блогеру и автору комментария, на который был дан ответ.
- Мы поддерживаем несколько типов уведомлений для блогера
- Мы отправим письмо посетителю, как только на его комментарий ответят.
Уведомления по электронной почте
Для уведомлений по электронной почте необходимо настроить следующие переменные окружения:
SMTP_SERVICE: поставщик услуг доставки почты SMTPСовет
Полный список поддерживаемых поставщиков можно найти в nodemailer services. Если вашего поставщика нет в списке, необходимо настроить
SMTP_HOSTиSMTP_PORT.SMTP_HOST: адрес SMTP-сервера, обычно его можно найти на странице настроек почтового ящика.SMTP_PORT: порт SMTP-сервера, обычно его можно найти на странице настроек почтового ящика.
SMTP_USER: учётная запись службы доставки почты SMTP, это ваш адрес электронной почты.SMTP_PASS: пароль службы доставки почты SMTP, это пароль вашей электронной почты.SMTP_SECURE: подключение SMTP по SSL,trueилиfalse.SITE_NAME: название вашего сайта, отображается в уведомлении.SITE_URL: адрес вашего сайта, отображается в уведомлении.
Следующие переменные окружения необязательны:
SENDER_NAME: пользовательское имя отправителя в уведомленииSENDER_EMAIL: пользовательское имя отправителя в уведомлении, требуется для некоторых служб SMTP.MAIL_SUBJECT: пользовательская тема письма об ответе на комментарийMAIL_TEMPLATE: пользовательское содержимое письма об ответеMAIL_SUBJECT_ADMIN: пользовательская тема письма-уведомления о новом комментарииMAIL_TEMPLATE_ADMIN: пользовательское содержимое письма-уведомления о новом комментарииAUTHOR_EMAIL: адрес электронной почты блогера, используется для определения того, оставлен ли комментарий самим блогером. Если комментарий оставлен блогером, напоминание не отправляется.
Уведомления в WeChat
Для уведомлений в WeChat мы используем Mr. Server. Необходимо задать в окружении переменную SC_KEY, полученную в Mr. Server.
SC_KEY: токен, полученный в Mr. Server. Обязателен для этого сервиса.AUTHOR_EMAIL: адрес электронной почты блогера, используется для определения того, оставлен ли комментарий самим блогером. Если комментарий оставлен блогером, напоминание не отправляется.SITE_NAME: название вашего сайта, отображается в уведомлении.SITE_URL: адрес вашего сайта, отображается в уведомлении.
Уведомления в QQ
Для отправки уведомлений в QQ мы используем Mr. Qmsg. Необходимо задать в окружении переменную QMSG_KEY, полученную в Mr. Qmsg.
QMSG_KEY: KEY, полученный в Mr. Qmsg. Обязателен для этого сервиса.QMSG_HOST: HOST, полученный в Mr. QmsgPrivate. Необязательно. Требуется для этого хоста. Значение по умолчанию —https://qmsg.zendee.cnQQ_ID: QQ ID получателя (получателей), кроме QQ-групп. Если QQ ID несколько, разделите значения запятыми, например1244453393,2952937634(все они должны быть в списке QQ ID вашего Mr. Qmsg).AUTHOR_EMAIL: адрес электронной почты блогера, используется для определения того, оставлен ли комментарий самим блогером. Если комментарий оставлен блогером, напоминание не отправляется.SITE_NAME: название вашего сайта, отображается в уведомлении.SITE_URL: адрес вашего сайта, отображается в уведомлении.QQ_TEMPLATE: шаблон уведомления, используемый QQ. Переменные и конкретные форматы описаны в разделе «Шаблон уведомлений» ниже. Если не настроен, используется шаблон по умолчанию.
Уведомления в Telegram
Для отправки уведомлений в Telegram мы используем Telegram-бота. Необходимо задать следующие переменные окружения.
TG_BOT_TOKEN: токен Telegram-бота для доступа к HTTP API. Создайте бота через @BotFather, чтобы получить этот токен. Обязателен для этого сервиса.TG_CHAT_ID:chat_idполучателя. Это может быть пользователь, канал или группа. @userinfobot покажет этотchat_id, если переслать ему сообщение. Обязателен для этого сервиса.AUTHOR_EMAIL: адрес электронной почты блогера, используется для определения того, оставлен ли комментарий самим блогером. Если комментарий оставлен блогером, напоминание не отправляется.SITE_NAME: название вашего сайта, отображается в уведомлении.SITE_URL: адрес вашего сайта, отображается в уведомлении.TG_TEMPLATE: шаблон уведомления, используемый Telegram. Переменные и конкретные форматы описаны в разделе «Шаблон уведомлений» ниже. Если не настроен, используется шаблон по умолчанию.
Уведомления через PushPlus
pushplus — платформа push-сообщений, поддерживающая множество каналов: WeChat, WeChat Work, DingTalk, SMS и электронную почту. Необходимо задать следующие переменные окружения. Подробные форматы параметров можно найти в документации pushplus.
PUSH_PLUS_KEY: токен пользователя. Обязателен для этого сервиса.PUSH_PLUS_TOPIC:id группы. Если пусто, отправляется самому себе. Не используется, еслиPUSH_PLUS_CHANNELравноwebhook.PUSH_PLUS_TEMPLATE:шаблон отправкиPUSH_PLUS_CHANNEL:канал отправкиPUSH_PLUS_WEBHOOK:webhook обязателен, еслиPUSH_PLUS_CHANNELравноwebhookилиcp.PUSH_PLUS_CALLBACKURL:URL обратного вызова после отправки ответа.AUTHOR_EMAIL: адрес электронной почты блогера, используется для определения того, оставлен ли комментарий самим блогером. Если комментарий оставлен блогером, напоминание не отправляется.SITE_NAME: название вашего сайта, отображается в уведомлении.SITE_URL: адрес вашего сайта, отображается в уведомлении.
Уведомления в Discord
Для отправки уведомлений в Discord мы используем Discord Webhook. Необходимо задать следующие переменные окружения.
DISCORD_WEBHOOK: URL Discord Webhook, как создать URL Discord Webhook?DISCORD_TEMPLATE: шаблон отправкиAUTHOR_EMAIL: адрес электронной почты блогера, используется для определения того, оставлен ли комментарий самим блогером. Если комментарий оставлен блогером, напоминание не отправляется.SITE_NAME: название вашего сайта, отображается в уведомлении.SITE_URL: адрес вашего сайта, отображается в уведомлении.
Уведомления в Lark
Для отправки уведомлений в группы мы используем Lark Webhook. Требуются следующие переменные окружения.
LARK_WEBHOOK: использование Webhook группового бота LarkLARK_SECRET: как указано в документации Lark, этот секрет используется для подписи запроса во избежание злоупотреблений (необязательно).LARK_TEMPLATE: шаблон сообщенияSITE_NAME: название вашего сайта, отображается в уведомлениях.SITE_URL: адрес вашего сайта, отображается в уведомлениях.
Шаблон уведомлений
Waline позволяет настраивать собственные шаблоны уведомлений отдельно для каждой платформы, обеспечивая более широкие возможности настройки и совместимость с i18n.
Поддерживаемые переменные
Шаблон передаёт параметры через объекты self, parent и site, которые содержат следующие переменные соответственно:
self: сам комментарийпеременная описание nick Никнейм пользователя, оставившего комментарий mail Электронная почта пользователя link Сайт пользователя url Адрес статьи comment Содержимое комментария browser Название браузера os Название операционной системы avatar аватар commentLink* Ссылки в комментариях *: commentLink предоставляется только в уведомлениях Telegram и автоматически оборачивается в формат Markdown.
parent: комментарий, на который дан ответ (родительский комментарий).переменная описание nick Никнейм пользователя, оставившего комментарий mail Электронная почта пользователя link Сайт пользователя browser Название браузера os Название операционной системы avatar аватар comment Содержимое комментария site: конфигурация сайтапеременная описание name Название сайта url URL сайта postUrl Полный адрес комментария
Шаблон по умолчанию
Шаблон по умолчанию приведён ниже для справки:
MAIL_SUBJECT:
{{parent.nick | safe}},『{{site.name | safe}}』上的评论收到了回复MAIL_TEMPLATE:
<div
style="border-top:2px solid #12ADDB;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;margin:50px auto;font-size:12px;"
>
<h2
style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 8px;"
>
您在<a style="text-decoration:none;color: #12ADDB;" href="{{site.url}}" target="_blank"
>{{site.name}}</a
>上的评论有了新的回复
</h2>
{{parent.nick}} 同学,您曾发表评论:
<div style="padding:0 12px 0 12px;margin-top:18px">
<div style="background-color: #f5f5f5;padding: 10px 15px;margin:18px 0;word-wrap:break-word;">
{{parent.comment | safe}}
</div>
<p><strong>{{self.nick}}</strong>回复说:</p>
<div style="background-color: #f5f5f5;padding: 10px 15px;margin:18px 0;word-wrap:break-word;">
{{self.comment | safe}}
</div>
<p>
您可以点击<a
style="text-decoration:none; color:#12addb"
href="{{site.postUrl}}"
target="_blank"
>查看回复的完整內容</a
>,欢迎再次光临<a
style="text-decoration:none; color:#12addb"
href="{{site.url}}"
target="_blank"
>{{site.name}}</a
>。
</p>
<br />
</div>
</div>MAIL_SUBJECT_ADMIN:
{{site.name | safe}} 上有新评论了MAIL_TEMPLATE_ADMIN:
<div
style="border-top:2px solid #12ADDB;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;margin:50px auto;font-size:12px;"
>
<h2
style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 8px;"
>
您在<a style="text-decoration:none;color: #12ADDB;" href="{{site.url}}" target="_blank"
>{{site.name}}</a
>上的文章有了新的评论
</h2>
<p><strong>{{self.nick}}</strong>回复说:</p>
<div style="background-color: #f5f5f5;padding: 10px 15px;margin:18px 0;word-wrap:break-word;">
{{self.comment | safe}}
</div>
<p>
您可以点击<a style="text-decoration:none; color:#12addb" href="{{site.postUrl}}" target="_blank"
>查看回复的完整內容</a
>
</p>
<br />
</div>QQ_TEMPLATE:
💬 {{site.name|safe}} 有新评论啦 {{self.nick}} 评论道: {{self.comment}} 邮箱: {{self.mail}} 状态: {{self.status}} 仅供评论预览,查看完整內容: {{site.postUrl}}TG_TEMPLATE:
💬 _[{{site.name}}]({{site.url}}) 有新评论啦_ _{{self.nick}}_ 回复说: ``` {{self.comment-}} ``` {{-self.commentLink}} _邮箱: _\`{{self.mail}}\` _审核: _{{self.status}} 仅供评论预览,点击[查看完整內容]({{site.postUrl}})
Дополнительная информация
- Размер переменных окружения Vercel ограничен
4KB, поэтому если ваш шаблон длинный, его следует настроить в главном входном файле, см. issue#106. - Конкретная информация о переменных может измениться в процессе разработки. Описание переменных здесь приведено только для справки. Конкретное содержимое следует смотреть в примерах кода.
