首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将.png文件附加到卫星发送的电子邮件中

将.png文件附加到卫星发送的电子邮件中
EN

Stack Overflow用户
提问于 2012-04-14 17:14:39
回答 1查看 232关注 0票数 0

在一个Satchmo商店,我需要附上一个小.png (条形码)的电子邮件,姜戈发送的订单完成。电子邮件是使用send_order_confirmation()格式化的,该方法调用send_store_mail() (两者都是satchmo的一部分)。这两个函数都不提供附加文件的功能(我认为),所以我应该重写它们吗?我想知道是否有可能/更好地使用信号来做这件事。也许是rendering_store_mail()?

顺便说一句,条形码是动态生成的,因此无法链接到服务器上某个位置的文件。

非常感谢,托马斯

EN

回答 1

Stack Overflow用户

发布于 2012-04-24 16:16:19

好吧,我也不得不在确认电子邮件中添加额外的信息,尽管只有文本。因此,这将是使用信号向电子邮件添加额外内容的非常简单的方法,这是最好的方法。如果可以避免覆盖satchmo-core,请始终使用信号;-)

  1. 定义侦听器,为渲染添加一些上下文。在本例中,我将一个额外注释字段的内容和此订单的条形码添加到上下文中,假设有一个名为get_barcode_img(<order>)的函数。我在这里也假设,get_barcode_img函数不仅会返回png,还会返回类似MIMEImage (如from email.MIMEImage import MIMEImage)的内容,以便能够将其包含在内联中。此外,可能还需要更多的信息,比如img.localsite/payment/listeners.py def add_extra_context_to_store_mail(send_mail_args=,context={},**kwargs):如果上下文中没有'order‘:返回context’‘barcode_header’= get_barcode_header(context'order') context‘’barcode_img‘= get_barcode_img(context'order') context’‘notes’= context'order'.notes
  2. connect监听器到某个地方的信号,其中代码肯定会被“发现”,就像来自satchmo_store.shop.signals导入rendering_store_mail的models.pylocalsite/payment/models.py,在本地rendering_store_mail.connect(payment_listeners.add_extra_context_to_store_mail,sender=order_notice_sender)
  3. override order_notice_sender模板(例如order_placed_notice.html)以添加新的上下文。注意您将模板放在哪里,因为路径对于django获取新模板而不是satchmo的模板至关重要。在这种情况下,从项目的根路径开始,可能会有一个模板文件夹,在其中,必须有与satchmo文件夹中完全相同的路径。例如/templates/shop/email/order_placed_notice.html ..。这可以应用于应用程序中的任何“有效”模板文件夹。模板的组织位置/组织方式由您决定。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10152423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档