Envoi de sujets par mail avec AMC ?

Added by Joss OUIN over 5 years ago

Bonsoir à tous,

Je souhaiterais envoyer des sujets AMC par mail à mes étudiants (un sujet différent par étudiant). Il s'agirait de sujets sous la forme "pdfform" (une option d'AMC). Ensuite les étudiants déposeraient leurs copies sur un E.N.T. Il me resterait ensuite à collecter les fichiers PDF et à les corriger.

Question 1 : Est-il possible de "détourner" la fonctionnalité "Envoyer..." d'AMC pour envoyer non pas les copies corrigées mais les sujets (par exemple 150 sujets différents pour 150 étudiants) ?

Question 2 : Si la réponse est "non", connaissez-vous un petit logiciel "Linux" qui pourrait se charger de cet envoi (la pièce jointe n'est pas la même à chaque envoi) ?

En vous remerciant par avance pour votre réponse, très bonne soirée à tous.

Joss.


Replies (20)

RE: Envoi de sujets par mail avec AMC ? - Added by Alexis Bienvenüe over 5 years ago

  1. je ne pense pas…
  2. malheureusement non. il faudrait sans doute écrire un petit script mais je ne connais pas de moyen très facile de faire cela

RE: Envoi de sujets par mail avec AMC ? - Added by Joss OUIN over 5 years ago

Oui effectivement, j'ai vu sur la documentation qu'il n'est pas possible d'envoyer les sujets par mail.
Si j'arrive à créer un petit script, je le placerai sur le Wiki.

Bonne journée.
Joss.

RE: Envoi de sujets par mail avec AMC ? - Added by Joss OUIN over 5 years ago

Bonjour à tous,

Je pense avoir une "solution de tir" pour envoyer un sujet différent à chaque étudiant. Je dois faire des tests "en vrai grandeur" afin d'être sûr.
Si tout est OK, je ferai un petit tutoriel sur le wiki d'AMC.

A bientôt et bonne journée à tous.
Joss.

RE: Envoi de sujets par mail avec AMC ? - Added by Joss OUIN over 5 years ago

Bonsoir à tous,

J'ai posté un didacticiel sur le wiki qui donne l'ensemble des manipulations à faire.
Bonne lecture :

https://project.auto-multiple-choice.net/projects/auto-multiple-choice/wiki/Envoi_de_sujets_AMC_par_mail

Bonne soirée à tous,
Joss.

RE: Envoi de sujets par mail avec AMC ? - Added by Al DUS over 5 years ago

Intéressant ! Il faudra que je teste cela !

RE: Envoi de sujets par mail avec AMC ? - Added by Joss OUIN over 5 years ago

Bonjour AI DUS et bonjour à tous,

J'avais juste un problème de blocage "smtp" dès que je dépassais les 50 mails par heure.
J'ai résolu ce problème en utilisant le "smtp" de Gmail, voir ce post : https://project.auto-multiple-choice.net/boards/4/topics/7551

Joss.

RE: Envoi de sujets par mail avec AMC ? - Added by Olivier Dadoun about 4 years ago

Bonjour à tous,

suite à la reforme des retraites du gouvernement et des gréves qui ont suivi l'exam que je devais donner
a été reprogrammé sous la forme d’un devoir à la maison. J'ai fait une page ici
http://dadoun.net/blog/2020/01/15/envoie-de-sujets-par-mail-avec-amc/ qui donne les 2 scripts Python pour:
- séparer le PDF en autant de pdf qui y a d'étudians
- envoyer un mail (avec mutt) à tous les étudiants avec leurs sujets en attachés
En espérant que cela peut servir
acm-ment votre
Olivier

PS: bon un QCM à la maison c'est un peu bof mais c'est pas la question :)

RE: Envoi de sujets par mail avec AMC ? - Added by Joss OUIN about 4 years ago

Bonjour Olivier et bonjour à tous,

Merci pour ce partage de codes Python. C'est intéressant de pouvoir envoyer des mails via Python.
J'avais quelques questions :
1/ Est-ce que tu es limité en nombre de mails par heure ?
2/ Quel SMTP utilises-tu ? Celui de Gmail ?
3/ Y a-t-il un paramétrage à faire auparavant pour "mutt" (le SMTP motamment) ?
4/ Est-ce que tu pourrais nous joindre le fichier "Emails-L2-1920.xlsx" à titre d'exemple afin de savoir quelles cellules il faut renseigner dans le classeur Excel
Ces cellules-là par exemple :

    num_etu          = sh.col_values(0)
    nom_pat_etu      = sh.col_values(1)
    prenom_etu       = sh.col_values(2)
    mail_etu         = sh.col_values(3)

J'avais essayé d'écrire un code pour envoyer des mails via Python mais sans succès ! Ton code tombe à pic !

Bonne soirée.
Cordialement.
Joss.

RE: Envoi de sujets par mail avec AMC ? - Added by Olivier Dadoun about 4 years ago

Hello,

1/ Est-ce que tu es limité en nombre de mails par heure ?
2/ Quel SMTP utilises-tu ? Celui de Gmail ?

-> j'utilise le server SMTP de mon labo et j'ai pas de limitation.
Comme tu peux le voir dans le script je fais un
os.system("sleep 2")
pour éviter d'envoyer en rafale des mails.
Dans mon home j'ai .mutt/muttrc dont voici le continue

set realname = "Max et les Maxi monstre"
set smtp_url = "smtps://@toto.france.fr:465"
set smtp_pass = "SUPER PASSWORD EN CLAIRE A EFFACER RAPIDOS"
set from = ""
set use_from=yes
set envelope_from ="yes"
set signature=~/.mutt/signature

Concernant le contenue de fichier voici le formatage (donc 4 colonnes) :

NUM_ETU NOM_PATRONYMIQUE PRENOM MAIL
21212121 Polo0 Poli0
21222222 Polo1 Poli1
21333333 Polo2 Poli2
21343434 Polo3 Poli3
21444449 Polo4 Poli4

voily
Olivier

RE: Envoi de sujets par mail avec AMC ? - Added by Joss OUIN about 4 years ago

Bonjour Olivier et bonjour à tous,

Merci Olivier pour ces précisions. Il me reste à faire un essai pour voir si j'arrive à faire fonctionner tout ça.
Belle journée à tous.
Cordialement.
Joss.

RE: Envoi de sujets par mail avec AMC ? - Added by Hervé Cabaud about 4 years ago

il y avait yamm pour google, mais c'est payant au dela d'une limite de mail ( peut être autocrat ),
j'utilise serial mailer[https://www.serialmailer.com] sur mac ( logiciel payant )
mais je viens de voir https://addons.thunderbird.net/fr/thunderbird/addon/mail-merge/
mailmerge pour thunderbird, on peut apparemment mettre des pièces jointes personnalisées.

RE: Envoi de sujets par mail avec AMC ? - Added by Joss OUIN about 4 years ago

Bonjour Hervé et bonjour à tous,

Merci pour ces infos. Actuellement, j'utilise "Mail-Merge", l'extension (gratuite) de Thunderbird.
Pour celles et ceux que cela intéresse, j'ai fait un tutoriel qui détaille la procédure avec des pièces jointes différentes pour chaque destinataire.
Le lien : [[http://joseouin.fr/tutoriels/tutoriels-windows-autres]]

Cela demande pas mal de manipulations et je voulais "simplifier" la procédure à l'aide d'un code Python. Mais bon le mieux est l'ennemi du bien.

Bonne journée à tous.
Joss.

RE: Envoi de sujets par mail avec AMC ? - Added by Sylvain CHAUVEAU 7 months ago

J'ai écris un programme python qui permet d'envoyer à chaque élève son sujet.
il faut modifier les chemins en fonction de vos paramètres mais ça fonctionne !

from pathlib import Path
import csv
import smtplib, ssl
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication

#chemin_csv est le chemin du fichier csv contenant votre liste d'élève avec leurs adresses mails.
classe = input("à quelle classe envoyer les sujets ?")+".csv" 
chemin_csv = Path("Chemin vers le dossier où ce trouve vos csv") / classe 

liste_destinataire = []

with open(chemin_csv, "r", encoding='utf-8') as file:
    # Lire le fichier CSV et traiter chaque ligne
    # Pour chaque élève, récupérer l'adresse e-mail et le nom du fichier PDF
    contenu = csv.reader(file, delimiter=",")
    #dans chaque ligne du csv, le denier élément est l'adresse mail de l'élève d'où le "-1" 
    for row in contenu:
        liste_destinataire.append(row[-1])

#je supprime le 1er élément qui est le nom de la colonne "mail" 
liste_destinataire.pop(0)
indice = 0

#trouver un moyen de couper le pdf contenant les sujets des élèves ! j'utilise automator sur mac.
filename = Path("Chemin vers le dossier où chaque sujet se trouve (un sujet = un fichier pdf)")

#On parcours tous les fichiers pdf
for fichier in filename.rglob("**/*.pdf"):

    smtp_server = "smtps.ac-nancy-metz.fr" 
    smtp_port = 465
    smtp_username = "votre adresse mail" 
    smtp_password = "mot de passe" 

    # Destinataire et message
    recipient_email = liste_destinataire[indice]
    subject = "envoie sujet qcm" 
    message_text = "Voici votre sujet." 

    # Création de l'e-mail
    msg = MIMEMultipart()
    msg['From'] = smtp_username
    msg['To'] = recipient_email
    msg['Subject'] = subject

    # Ajouter le corps du message
    msg.attach(MIMEText(message_text, 'plain'))

    # Ajouter la pièce jointe (fichier PDF dans cet exemple)
    #il faut convertir le chemin Posixpath en une chaine de caractère pour insérer un PJ.
    fichier = str(fichier)
    print(fichier)
    with open(fichier, "rb") as attachment:
        part = MIMEApplication(attachment.read(), Name=fichier)

    # Ajouter les en-têtes pour la pièce jointe
    part['Content-Disposition'] = f'attachment; filename="{fichier}"'
    msg.attach(part)

    # Établir une connexion sécurisée avec le serveur SMTP
    try:
        server = smtplib.SMTP_SSL(smtp_server, 465)
        server.login(smtp_username, smtp_password)

        # Envoyer l'e-mail
        server.sendmail(smtp_username, recipient_email, msg.as_string())
        print("E-mail avec pièce jointe envoyé avec succès !")

    except Exception as e:
        print(f"Erreur lors de l'envoi de l'e-mail : {str(e)}")

    finally:
        # Fermer la connexion au serveur SMTP si elle est ouverte
        if 'server' in locals():
            server.quit()

    indice +=1

RE: Envoi de sujets par mail avec AMC ? - Added by Joss OUIN 7 months ago

Bonjour,

Merci pour ce partage de développement.
Joss

RE: Envoi de sujets par mail avec AMC ? - Added by Alexis Bienvenüe 7 months ago

Actuellement (depuis la version 1.5.0) l'envoi des sujets d'examen devrai être possible directement avec AMC si vous utilisez des copies préremplies.

preremplies_0.png (70.7 kB)

RE: Envoi de sujets par mail avec AMC ? - Added by Sylvain CHAUVEAU 7 months ago

Bonjour,

Je n'ai pas ce bouton ! Apparait-il uniquement lorsque le sujet est fait avec des copies pré remplies ?
J'ai la dernière version d'amc. normalement.
La doc est à jour ? Je n'y ai pas trouvé comment envoyer les sujets.

RE: Envoi de sujets par mail avec AMC ? - Added by Alexis Bienvenüe 7 months ago

Apparait-il uniquement lorsque le sujet est fait avec des copies pré remplies ?

Oui tout à fait.

RE: Envoi de sujets par mail avec AMC ? - Added by Sylvain CHAUVEAU 7 months ago

J'ai suivi la documentation. Pas d'erreur quand je compile mon fichier .tex. Pas d'erreur quand je mets à jour les documents cependant je ne vois aucune association entre les copies et les élèves ... Et le bouton "Envoyer" pour envoyer les sujets n'apparait pas. Pourriez vous regarder ce qui ne va pas ? Je vous mets mon csv où le caractère de séparation est ",".

simple.tex (7.7 kB)

RE: Envoi de sujets par mail avec AMC ? - Added by Alexis Bienvenüe 7 months ago

Il faut préparer les documents, calculer les mises en page, choisir la méthode d'impression dans des fichiers et imprimer les copies. Le bouton devrait alors apparaître.
A priori, il faudra aussi remplacer

NOM - Prénom - Classe :

par
Nom : \nom{} \prenom{}

ou quelque chose de similaire.

RE: Envoi de sujets par mail avec AMC ? - Added by Alexis Bienvenüe 7 months ago

Je supprime votre fichier 2nde8.csv car il contient des données personnelles.

(1-20/20)