TurboMail 3 с пилонами 1,0 - MailNotEnabledException - PullRequest
3 голосов
/ 11 августа 2010

Я пытаюсь настроить TurboMail 3 с Pylons 1.0

Следуйте документам здесь

Я добавил это в файл development.ini

[DEFAULT]
...
mail.on = true
mail.manager = immediate 
mail.transport = smtp 
mail.smtp.server = localhost

и мой app_globals.py выглядит следующим образом:

"""The application's Globals object"""

from beaker.cache import CacheManager
from beaker.util import parse_cache_config_options

class Globals(object):

    def __init__(self, config):
        self.cache = CacheManager(**parse_cache_config_options(config))

     from turbomail.adapters import tm_pylons
     tm_pylons.start_extension()

Мой контроллер имеет следующий метод:

def submit(self):
    message = Message("from@example.com", "to@example.com", "Hello World")
    message.plain = "TurboMail is really easy to use."
    message.send()

Проблема в том, что я получаю эту ошибку, когда message.send ()называется:

MailNotEnabledException: An attempt was made to use a facility of the TurboMail framework but outbound mail hasn't been enabled in the config file [via mail.on]

Я не знаю, что мне здесь не хватает?По документам все кажется правильным!

Спасибо

1 Ответ

3 голосов
/ 12 августа 2010

Pylons 1.0 внесла несколько обратно несовместимых изменений в то, как (и когда) конфигурация хранится в глобальном объекте. В этом случае конфигурация больше не загружается, когда создается объект Globals. Вместо этого вам придется изменить свой код на следующий:

import atexit
from turbomail import interface
from turbomail.adapters import tm_pylons
from beaker.cache import CacheManager
from beaker.util import parse_cache_config_options

class Globals(object):
    def __init__(self, config):
        self.cache = CacheManager(**parse_cache_config_options(config))

        atexit.register(tm_pylons.shutdown_extension)
        interface.start(tm_pylons.FakeConfigObj(config))

Выше (atexit и interface.start) именно то, что делает код start_extension ().

Я выпущу обновленную TurboMail, чтобы разрешить передачу конфигурации в качестве аргумента start_extension (), что должно прояснить это более разумным способом.

...