Actuellement, j'ai une notification par email implémentée et cela fonctionne quand vous postez un commentaire vous recevez un email qui vous informe du commentaire posté, maintenant le fait est que cela se passe en interne dans le système , donc, fondamentalement, le personnel (account_handler's
) se parlent entre eux et recevoir des notifications par e-mail.envoyer un e-mail en arrière/django en interne django
Maintenant le problème que je suis confronté est que account_handlers
qui laisser un commentaire sur mon fil par exemple, nous recevrons tous un e-mail et être notifié que le commentaire a été fait dans ce fil, mais quand je réponds je suis ne rien envoyer, donc pas de retour d'e-mail lorsque vous répondez au commentaire dans le fil, les e-mails ne vont que dans une direction, alors la question est de savoir comment puis-je résoudre ce problème?
Dans mon modèle, je suis en utilisant ce code pour la configuration de notification par courrier électronique de commentaire:
class LeadContact(models.Model):
# models here
account_handler = models.ForeignKey(User, blank=True, null=True, related_name='handling_leads',
on_delete=models.SET_NULL)
# some custom function here
def send_comment_posted_emails(self, comment):
comment_user = comment.user
comment_text = comment.comment
handler_user = self.account_handler
handler_email = handler_user.email
if handler_email is not None and handler_email != comment_user.email:
current_site = Site.objects.get_current()
leads_url = self.get_view_url() + "#CommentsDiv"
ctx = {"leads_url": leads_url, "site_name": current_site.name, "leads_sn": self.serial_number,
"poster_name": user_util.get_user_full_name_or_user_name(comment_user),
"comment_text": comment_text}
subject = render_to_string("vinclucms_sales/email/email_sales_comment_posted_subject.txt", ctx)
subject = "".join(subject.splitlines())
message = render_to_string("vinclucms_sales/email/email_sales_comment_posted_message.html", ctx)
MailManager.send_mail_with_error_handler(subject, message, settings.DEFAULT_FROM_EMAIL, [handler_email],
message_html=message)
class Meta:
# Meta code here
signal qui est l'envoi d'email:
@receiver(post_save, sender=EmailAddress)
def handle_email_address_save(sender, instance, created, update_fields, **kwargs):
confirm = account_settings.ACCOUNT_EMAIL_CONFIRMATION_EMAIL
must_confirm = instance.must_confirm if hasattr(instance, 'must_confirm') else False
warning("handle_email_address_save called for email "
+ str(instance.email) + ", created = " + str(created)
+ ", confirm = " + str(confirm) + ", must_confirm = " + str(must_confirm))
if confirm and not instance.verified and must_confirm:
instance.send_confirmation()
warning("handle_email_address_save sent confirmation")
# TODO: move to signals.py in quotes module
@receiver(comment_was_posted)
def handle_comment_posted(sender, comment, request, **kwargs):
if comment.content_type.model == 'leadcontact':
leadcontac = LeadContact.objects.get(pk=comment.object_pk)
leadcontac.send_comment_posted_emails(comment)