Underground-Digital/Workflow-Engine
0
1import logging2import time3 4import click5from celery import shared_task6from flask import render_template7 8from configs import dify_config9from extensions.ext_mail import mail10 11 12@shared_task(queue="mail")13def send_invite_member_mail_task(language: str, to: str, token: str, inviter_name: str, workspace_name: str):14 """15 Async Send invite member mail16 :param language17 :param to18 :param token19 :param inviter_name20 :param workspace_name21 22 Usage: send_invite_member_mail_task.delay(language, to, token, inviter_name, workspace_name)23 """24 if not mail.is_inited():25 return26 27 logging.info(28 click.style("Start send invite member mail to {} in workspace {}".format(to, workspace_name), fg="green")29 )30 start_at = time.perf_counter()31 32 # send invite member mail using different languages33 try:34 url = f"{dify_config.CONSOLE_WEB_URL}/activate?token={token}"35 if language == "zh-Hans":36 html_content = render_template(37 "invite_member_mail_template_zh-CN.html",38 to=to,39 inviter_name=inviter_name,40 workspace_name=workspace_name,41 url=url,42 )43 mail.send(to=to, subject="立即加入 Dify 工作空间", html=html_content)44 else:45 html_content = render_template(46 "invite_member_mail_template_en-US.html",47 to=to,48 inviter_name=inviter_name,49 workspace_name=workspace_name,50 url=url,51 )52 mail.send(to=to, subject="Join Dify Workspace Now", html=html_content)53 54 end_at = time.perf_counter()55 logging.info(56 click.style(57 "Send invite member mail to {} succeeded: latency: {}".format(to, end_at - start_at), fg="green"58 )59 )60 except Exception:61 logging.exception("Send invite member mail to {} failed".format(to))62 