【问题标题】:Use Hyperlink and Image in a Email-friendly way以电子邮件友好的方式使用超链接和图像
【发布时间】:2021-05-28 12:51:56
【问题描述】:

嘿,全能的 Stackoverflow,

我对 Django 很陌生,我需要编写一个 HTML 电子邮件模板,其中包括也是超链接的社交媒体图标。在预览中一切正常,但通过电子邮件发送时,只会出现“破损图像”图标。 图像位于 Django 模块的静态文件中,也位于主应用程序的 static.dist 目录中。几周前,它可以工作,但经过一些暂停和昨天的新测试后,图像损坏了。

  {% static 'ner_mail/YouTube.png' as yt_icon %}
             {% with 'target="blank" href="https://www.youtube.com/URL"'|safe as a_attr %}
               {% blocktrans  %}
                    <a {{ a_attr }} > <img src="{{ yt_icon }}" alt="" style="alignment: left;vertical-align:middle; width: 30px; padding-right: 5px" ></a>
                    <a {{ a_attr }}>    Social Media   {% endblocktrans %}
                {% endwith %}</li>

有人可以帮助我吗?预先感谢您的任何帮助! 最好的问候,

【问题讨论】:

    标签: django django-email


    【解决方案1】:

    static 模板标签给出了一个 relative url,因此当您在电子邮件中发送它时,用户的浏览器会假定它与用户所在的当前网站是相对的 (gmail.com如果假设用户在那里打开了他们的电子邮件)。因此,您要呈现一个绝对 url。为此,您可以使用request.scheme [Django docs]request.get_host [Django docs]

    <img src="{{ request.scheme }}://{{ request.get_host }}{{ yt_icon }}" ...>
    

    【讨论】:

    • 您好,阿卜杜勒,对于延迟回答表示歉意。不幸的是,您的解决方案没有解决我的问题,但也许我忽略了一些东西。感谢您的帮助!
    • @Corinari 您如何呈现电子邮件?尝试将请求传递给电子邮件模板的上下文。
    • 看起来需要渲染器(我没有编写)才能使用端口 80 连接到服务器以创建 mime_images。不知道。不是开发人员,绝对不知道这是否是正常行为。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 2013-08-03
    • 2014-05-15
    • 2013-08-17
    • 2020-08-30
    • 2014-07-02
    相关资源
    最近更新 更多