Как отправить письмо с вложениями в Plone, используя шаблонный подход? - PullRequest
3 голосов
/ 04 июля 2011

Я читал официальные документы об отправке электронных писем из Plone с использованием некоторых шаблонов, и пока это работает.

У меня вопрос: как добавить вложения, используя шаблонный подход?

Ответы [ 3 ]

4 голосов
/ 04 июля 2011

Команда MailHost.send принимает как строки Python (Unicode), так и объекты email.Message.Это означает, что вы можете использовать пакет электронной почты python для создания правильного сообщения MIME с вложениями.

Стандартная библиотека включает в себя большую страницу примеров ;любой текст все еще может быть сгенерирован шаблонами, как в документации, которую вы связали.

3 голосов
/ 04 июля 2011

Используйте почтовый модуль Python.

Примеры:

http://docs.python.org/library/email-examples.html

Составленные сообщения могут быть переданы в context.MailHost (MTA of Zope).

Он есть в каждомлучше создавать и отправлять электронные письма с уровня Python, а не использовать старый фасад DTML sendmail ... не используйте его.

1 голос
/ 04 июля 2011

Это мое решение, может быть, оно не самое лучшее:

создать метод DTML mime_file в portal_skin / custom:

  <dtml-mime type="text/text; charset=utf-8" encode="7bit">

  <dtml-var "text">

  <dtml-boundary type="application/octet-stream" disposition="attachment" 
  filename_expr="nomefile"><dtml-var "file"></dtml-mime>

Назовите его (например, из скрипта Python) как:

message = context.mime_file(file=a_file, text=message, nomefile='attach_name.pdf')
context.MailHost.send(message, mTo, mFrom, mSubj)

где a_file - содержимое файла.

вдохновлено:

http://www.zope.org/Members/visibleoffice/HowTo.2003-10-22.1455

Это быстрое решение с использованием скриптов Python.

...