2017-01-07 2 views
0
import requests 
from marrow.mailer import Mailer, Message 

from app import celery 
from app.helpers.versioning import strip_tags 




@celery.task(name='send.email.post.smtp') 
def send_mail_via_smtp_task(config, payload): 
    print config,payload 
    mailer_config = { 
     'transport': { 
      'use': 'smtp', 
      'host': config['host'], 
      'username': '[email protected]', 
      'password': '99121Padma', 
      'tls': config['encryption'], 
      'port': config['port'] 
     } 
    } 

    mailer = Mailer(mailer_config) 
    mailer.start() 
    message = Message(author=payload['from'], to=payload['to']) 
    message.subject = payload['subject'] 
    message.plain = strip_tags(payload['html']) 
    message.rich = payload['html'] 
    mailer.send(message) 
    mailer.stop() 

приведенный выше код дает мне ошибку ERROR/MainProcess] Task send.email.post.smtp [a58e3232-ffe2-42d0-ad53-03dc4dc6b980] поднял неожиданную: KeyError ('шифрование ',) Что здесь вызывает проблема?мозг почтовик питон KeyError encrytion

ответ

0

Ошибка говорит, что словарь config не имеет ключа с именем encryption, поэтому, когда вы пытаетесь получить значение этой клавиши, поднимающее KeyError. Удостоверьтесь, что у него есть config.

mailer_config = { 
     ... 
     'tls': config['encryption'], 
} 
Смежные вопросы