当前位置: 首页>>代码示例>>Python>>正文


Python premailer.transform方法代码示例

本文整理汇总了Python中premailer.transform方法的典型用法代码示例。如果您正苦于以下问题:Python premailer.transform方法的具体用法?Python premailer.transform怎么用?Python premailer.transform使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在premailer的用法示例。


在下文中一共展示了premailer.transform方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: send_verification_email

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def send_verification_email(user):
    """Send verification email to user
    """
    # create email verification request
    r = EmailVerificationRequest(key=os.urandom(32).hex(), user=user)
    db.session.add(r)
    db.session.flush()

    # send email
    subject = 'Flaskapp Account: Please Confirm Email'
    msg = Message(subject, recipients=[user.email])
    verify_url = url_for('.verify_email', key=r.key, email=user.email, \
                             _external=True)

    f = '/auth/verify-email-email'
    msg.body = render_template(f + '.txt', verify_url=verify_url)

    html = render_template(f + '.html', verify_url=verify_url)
    base_url = url_for('content.home', _external=True)
    msg.html = transform(html, base_url=base_url)
    mail.send(msg) 
开发者ID:muicss,项目名称:flaskapp,代码行数:23,代码来源:auth.py

示例2: message

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def message(self, sender, to, subject, message, html_message):
        """Prepare an message
        """
        if not isinstance(to, (list, tuple)):
            to = [to]
        if html_message:
            if not message and bs:
                body = bs(html_message, 'html.parser').find('body')
                if body:
                    message = body.get_text().strip()
            html_message = transform(html_message)

        msg = EmailMultiAlternatives(subject, message, sender, to,
                                     encoding=self.app.config['ENCODING'])
        if html_message:
            msg.attach_alternative(html_message, 'text/html')
        return msg 
开发者ID:quantmind,项目名称:lux,代码行数:19,代码来源:backend.py

示例3: md2html

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def md2html(text, styles=None, poster='', banner='', convert_list=True, ul_style='\u25CB'):
    md = Markdown()

    # 将markdown列表转化为带序号的普通段落(纯为适应微信中列表序号样式自动丢失的古怪现象)
    if convert_list:
        blocks = text.split('\n```')
        for i in range(0, len(blocks)):
            if i % 2 == 0:
                blocks[i] = re.sub(r'(\n\d+)(\.\s.*?)', r'\n\1\\\2', blocks[i])
                blocks[i] = re.sub(r'\n[\-\+\*](\s.*?)',
                                   u'\n\n{} \1'.format(ul_style), blocks[i])
            else:
                continue  # 跳过代码块内部内容
        text = '\n```'.join(blocks)

    inner_html = md(text)
    result = premailer.transform(pack_html(inner_html, styles, poster, banner))
    return result 
开发者ID:insula1701,项目名称:maxpress,代码行数:20,代码来源:maxpress.py

示例4: sendUpsellEmail

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def sendUpsellEmail(data):
        name = Utils.getUserName(data['user'])
        with webapp.app_context():
            consumer_mail = render_template('mailers/extend_order.html',
                            name = name,
                            book_name = data['book_name'],
                            order_id = data['order_id'],
                            items = data['items'], 
                            curated_items = data['curated_items'],
                            quote = data['quote'], 
                            quote_author = data['quote_author'])
            pre = Premailer(consumer_mail, remove_classes=False, strip_important=False)
            consumer_mail =  pre.transform()
            email = Message('Enjoying the book?',
                            recipients=[data['user'].email])
            email.html = consumer_mail
            mail.send(email)
        return True 
开发者ID:anantzoid,项目名称:Ostrich,代码行数:20,代码来源:mailer.py

示例5: forgot

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def forgot():
    """GET|POST /forgot: forgot password form handler
    """
    form = ForgotPasswordForm()
    if form.validate_on_submit():
        # get user
        u = User.query.filter_by(email=form.email.data).one()

        # create reset password
        # Todo: delete all previous entries
        r = PasswordResetRequest(key=os.urandom(32).hex(), user=u)

        # save to db
        db.session.add(r)
        db.session.flush()

        # generate email
        msg = Message('Password Reset Request',
                      recipients=[u.email])
        reset_url = url_for('auth.reset_password', key=r.key, email=u.email, \
                                _external=True)

        # txt
        msg.body = render_template('/auth/reset-password-email.txt',
                                   reset_url=reset_url)

        # html
        html = render_template('/auth/reset-password-email.html',
                               reset_url=reset_url)
        msg.html = transform(html,
                             base_url=url_for('content.home', _external=True))

        # send email
        mail.send(msg)

        return render_template('/auth/forgot-followup.html',
                               email=u.email)

    return render_template('/auth/forgot.html', form=form) 
开发者ID:muicss,项目名称:flaskapp,代码行数:41,代码来源:auth.py

示例6: get_body_html

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def get_body_html(self):
        html = ""
        if self.body_html:
            html = transform(self.render_text_template(self.body_html))
        elif self.body_html_template:
            html = transform(self.render_template(self.body_html_template))
        return html 
开发者ID:scrapinghub,项目名称:spidermon,代码行数:9,代码来源:__init__.py

示例7: send_email

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def send_email(
    to_email, context, subject, plain_template, html_template, from_email=None
):
    """
    Render a plain and html message based on a context and send it using django.core.mail.
    """

    plain_body = render_to_string(plain_template, context)

    html_body = None
    if html_template:
        html_body = render_to_string(html_template, context)

    recipient_list = to_email if isinstance(to_email, list) else [to_email]

    log.info(
        "send_mail",
        subject=subject,
        from_email=from_email,
        recipient_list=recipient_list,
    )

    django_send_mail(
        subject=subject,
        message=plain_body,
        from_email=from_email,
        recipient_list=recipient_list,
        html_message=transform(html_body),
        fail_silently=False,
    ) 
开发者ID:webkom,项目名称:lego,代码行数:32,代码来源:email.py

示例8: premailer_transform

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def premailer_transform(text):
    try:
        from premailer import transform

        return transform(text)
    except ImportError:
        logger.error("You don't have module 'premailer' installed")
        return text
    except Exception as err:
        logger.error(err)
        return text 
开发者ID:LPgenerator,项目名称:django-db-mailer,代码行数:13,代码来源:utils.py

示例9: transform

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def transform(html_message, base_url=None):
        return html_message 
开发者ID:quantmind,项目名称:lux,代码行数:4,代码来源:backend.py

示例10: send_notification

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def send_notification(user, commtype_code, context, site, recipient=None):
    """Send different notification mail to the user based on the triggering event.

    Args:
    user(obj): 'User' object to whom email is to send
    commtype_code(str): Communication type code
    context(dict): context to be used in the mail
    recipient(str): Email which overrides user.email when set

    """

    tracking_id, client_id, ip = parse_tracking_context(user, usage='notification')

    tracking_pixel = 'https://www.google-analytics.com/collect?v=1&t=event&ec=email&ea=open&tid={tracking_id}' \
                     '&cid={client_id}&uip={ip}'.format(tracking_id=tracking_id, client_id=client_id, ip=ip)
    full_name = user.get_full_name()
    context.update({
        'full_name': full_name,
        'site_domain': site.domain,
        'platform_name': site.name,
        'tracking_pixel': tracking_pixel,
    })

    try:
        event_type = CommunicationEventType.objects.get(code=commtype_code)
    except CommunicationEventType.DoesNotExist:
        try:
            messages = CommunicationEventType.objects.get_and_render(commtype_code, context)
        except Exception:  # pylint: disable=broad-except
            log.error('Unable to locate a DB entry or templates for communication type [%s]. '
                      'No notification has been sent.', commtype_code)
            return
    else:
        messages = event_type.get_messages(context)

    if messages and (messages['body'] or messages['html']):
        messages['html'] = transform(messages['html'])
        Dispatcher().dispatch_user_messages(user, messages, site, recipient) 
开发者ID:edx,项目名称:ecommerce,代码行数:40,代码来源:notifications.py

示例11: generate_content

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def generate_content(
    md_content: str, theme: Optional[str] = None, context: Optional[dict] = None
):
    """
    Generates the content of an email to be sent. This method actually renders two templates:
    1. The extremely simple local template, which writes the stylesheet, header and user-provided md_content to the
    message
    2.  The result of 1. is also treated as a jinja template, and rendered using the arguments provided in the context
    parameter

    Apart from rendering the template, this method also does two other things:
    1. Applies an additional highlight renderer with better support for code blocks
    2. Uses premailer.transform to bake the css into the HTML
    """
    if not theme:
        theme = os.path.join(os.path.dirname(os.path.abspath(__file__)), "style.css")

    if not context:
        context = {}

    with open(theme) as f:
        theme = f.read()

    markdown = mistune.Markdown(renderer=HighlightRenderer())

    with open(
        os.path.join(os.path.dirname(os.path.abspath(__file__)), "template.jinja2")
    ) as t:
        template = jinja2.Template(t.read())
    content = premailer.transform(
        template.render(content=markdown(md_content), stylesheet=theme)
    )

    new_template = jinja2.Template(content)
    return new_template.render(context)


#
# with open('test.md') as r:
#     with open('test.html', 'w') as f:
#         f.write(generate_content(r.read(), theme='my-style.css', context=dict(things=['Thing 1', 'Thing 2']))) 
开发者ID:chris104957,项目名称:maildown,代码行数:43,代码来源:renderer.py

示例12: welcomeMailer

# 需要导入模块: import premailer [as 别名]
# 或者: from premailer import transform [as 别名]
def welcomeMailer(user):
        name = Utils.getUserName(user)
        with webapp.app_context():
            email = Message('Welcome to Ostrich!',
                        recipients=[user.email])
            email.html = transform(render_template('mailers/welcome.html', name=name))
            mail.send(email)
        return True 
开发者ID:anantzoid,项目名称:Ostrich,代码行数:10,代码来源:mailer.py


注:本文中的premailer.transform方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。