2012-06-20 1 views
0

У меня есть проект web.py с модулем уведомления - система заметит пользователей, отправив электронное письмо в формате HTML.Как отправить почту только с помощью web.py в python?

Я знаю, как отправить электронное письмо в формате HTML в python. (Также описано в этом Q sendmail with HTML message), а также знать функцию sendmail() в web.py (версия 0.37).

import web 

web.config.smtp_server = 'smtp.gmail.com' 
web.config.smtp_port = 587     
web.config.smtp_username = '[email protected]' 
web.config.smtp_password = '*********'  
web.config.smtp_starttls = True 

web.sendmail('[email protected]',['[email protected]'],'Hello nodexy','This email is from web.py !') 

Я ожидаю:

web.sendmail('[email protected]',['[email protected]'],'Hello nodexy', '<html><img src="hello.png"/></html>') 

Теперь, как я могу это исправить в web.py? Я уверен, что не могу установить строку HTML для функции sendmail().

+0

У вас есть информация об исключении? – iMom0

+0

Вышеприведенный код в порядке. Но проблема в том, как отправить HTML-почту в web.py? Может быть, не использовать sendmail()? Любая другая функция? –

+0

Я получил его из справки по web.py. просто импортируйте web и help (web.sendmail) :). Спасибо, в любом случае ! –

ответ

1

отправить HTML почты, добавить ключ к заголовкам:

web.sendmail(from_address, to_address, subject, msg, headers={'Content-Type':'text/html;charset=utf-8'}) 

в web.py utils.py см метод prepare_message _EmailMessage в:

def prepare_message(self): 
    for k, v in self.headers.iteritems(): 
     if k.lower() == "content-type": 
      self.message.set_type(v) 
     else: 
      self.message.add_header(k, v) 

    self.headers = {} 
+0

Спасибо! Я вижу это :) https://github.com/webpy/webpy/blob/master/web/utils.py –

0

я получаю его от помощи (web.sendmail) в web.py!

>>> import web 
>>> help(web.sendmail) 

Помощь по функции Sendmail в модуле web.utils:

sendmail(from_address, to_address, subject, message, headers=None, **kw) 

Отправляет сообщение электронной почты message с почтовыми и конверт заголовков для от from_address_ к to_address с subject. Дополнительные заголовки электронной почты могут быть указаны в словаре `headers.

Опционально cc, bcc и вложения могут быть указаны как аргументы ключевых слов. Вложения должны быть итерабельными, и каждое вложение может быть либо именем файла , либо файловым объектом, либо словарем с именем файла, содержимым и необязательными ключами content_type.

Как ответ @ number23_cn, просто добавьте этот ключ 'Content-Type' в заголовки.

 Смежные вопросы

  • Нет связанных вопросов^_^