Aller au contenu

[Container Manager] Mails non envoyés en script, mais envoyés en shell


Messages recommandés

Posté(e) (modifié)

Bonjour à tous,

Je viens car je commence a ne plus vraiment savoir ou ni quoi chercher... J'ai installer en docker un IA pour surveiller mes impressions 3D (Obico Server : https://www.obico.io/docs/server-guides/install/). D'un point de vue techno, au dela de l'IA, il y a un Django qui sert à héberger le site + envoyer les mails. C'est cette dernière fonctionnalité qui ne fonctionne pas (et à priori, uniquement chez moi... vu qu'on ne doit pas etre nombreux a utiliser un DSM pour ca).

Côté Container, l'install est fait full SSH (je ne pense pas qu'il y ait un docker dispo sur la commu).

Ce qui ne fonctionne pas:

- Les envois de mails qui utilisent les fonctionnalités de Django, voici la def de la fonction:

def send_emails(self,
            user: UserContext,
            subject: str,
            mailing_list: str,
            template_path: str,
            ctx: Dict,
            img_url: str = None,
            verified_only: bool = True,
            attachments: Optional[List] = None)

Et celle du UserContext:

def get_user_context(self, user: User) -> UserContext:
        return UserContext(
            id=user.id,
            email=user.email,
            syndicate_name=user.syndicate.name if user.syndicate else '',
            first_name=user.first_name,
            last_name=user.last_name,
            dh_balance=user.dh_balance,
            is_pro=user.is_pro,
            unsub_token=user.unsub_token,
        )

A priori, rien de bien sorcier la dedans...

- Ce qui fonctionne:

  • Lancer une commande sudo docker-compose exec web ./manage.py shell
  • taper la commande: from django.core.mail import send_mail
  • taper la commande: from django.conf import settings
  • taper la commande
send_mail(
    'Test Email from Obico',
    'This is a test email sent manually from the Django shell.',
    settings.EMAIL_HOST_USER,
    ['youemail@gmail.com'],
    fail_silently=False,
)
  • Le mail est correctement envoyé et reçu

 

Après avoir pas mal échangé avec les devs, ils pensent que le problème vient de docker (donc de container manager). Après avoir pas mal cherché sur le net, j'ai rajouté un EXPOSE 587 (pour pouvoir joindre le SMTP google en TLS), rajouté les ports dans la config du container... Mais toujours rien ne part via Django.

Autre précision qui a certainement son importance: je n'ai aucune erreur dans les logs applicatives. Je suppose donc que le script est correctement exécuté mais qu'il y a en effet une configuration de container manager qui bloque l'envoi des mails, mais je ne sais pas laquelle...

Je vous met l'exemple de l'envoi du mail de test depuis l'interface Django:

def send_test_email(modeladmin, request, queryset):
    for u in queryset.all():
        user_ctx = handler.get_user_context(u)
        EmailNotificationPlugin().send_emails(
            user=user_ctx,
            subject='Test email - it worked!',
            mailing_list='test',
            template_path='email/test_email.html',
            ctx={},
            verified_only=False,
        )
    messages.success(request, 'Test email sent. Check your server logs if you do not see test email in your inbox.')

Et j'ai bien le message Test email sent. Check your server logs if you do not see test email in your inbox. qui est affiché dans Django quand j'exécute la commande d'envoi du mail de test...

Merci d'avance pour votre aide sur ce sujet

Modifié par darkneo

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.