2017-09-13 4 views
0

Dans mon projet Django, j'ai leads qui appartient à un organization. Un de mes points de vue filtre ces pistes par organisation, puis leur envoie un message par courrier électronique. Ce message est sous la forme d'un modèle html.Passer une variable unique lors de l'envoi de courrier électronique avec Django

Actuellement, c'est comment je le fais:

# FIRST: get a list of all the emails 
leads_email = [] 

leads = Lead.objects.filter(organization=organization) 
for lead in leads: 
    if lead.email != None: 
     leads_email.append(lead.email) 


# SECOND: Django email functions 
msg = EmailMessage(subject, 
        get_template('email_templates/campaign_email.html').render(
         { 
          'message': message, 
         } 
        ), 
        from_email, 
        bcc=to_list) 
msg.content_subtype = "html" 
msg.send() 

Toutefois, chaque lead a un code unique qui leur est associé, ce champ se trouve sous lead.code. Je voudrais inclure ce code dans l'e-mail. Par exemple, si le code unique de [email protected] est "test123", alors je veux l'inclure dans le courriel à [email protected] seul. Je fais actuellement ceci en passant par une variable appelée message, cependant ce n'est pas unique et chaque avance obtient la même chose.

Une idée sur la façon dont je peux accomplir cela? Merci

Répondre

2

Si vous avez un contenu d'e-mail spécifique à chaque objet, vous devrez envoyer les e-mails individuellement plutôt qu'en masse. Il vous suffit donc d'inclure le code email dans votre boucle;

leads = Lead.objects.filter(organization=organization) 
for lead in leads: 
    if lead.email != None: 
     msg = EmailMessage(
      subject, 
      get_template('email_templates/campaign_email.html').render(
       { 
        'message': message, 
        'code': lead.code 
       } 
      ), 
      from_email, 
      [lead.email, ] 
     ) 
     msg.content_subtype = "html" 
     msg.send()