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() 

le code ci-dessus me donne une erreur erreur/MainProcess] send.email.post.smtp Tâche [a58e3232-ffe2-42d0-ad53-03dc4dc6b980] élevé inattendu: KeyError ('cryptage ',) Qu'est-ce qui cause le problème ici?moelle mailer python KeyError cryptologie

Répondre

0

L'erreur indique config dictionnaire n'a pas de clé nommée encryption, donc lorsque vous essayez d'obtenir la valeur de cette clé en levant le KeyError. Assurez-vous que le dictionnaire config l'a.

mailer_config = { 
     ... 
     'tls': config['encryption'], 
}