niveaugourou 0 GOTOMODULE chaussettes troupeau TAdresse pingouin Nom pingouin Adresse fintroupeau troupeau GIVRE EnvoieCourrier pingouin Serveur TAdresse Envoyeur TAdresse Destinataire<> machineapingouins Envoyer fintroupeau §Envoyer:ASV(Sujet Message):EnvoieCourrier pingouin Reponse Chaussette Client pingouin ret encasderreurGOTO %%Erreur Client@Tricoter(&Serveur *(25)) GOTO Lecture du message d'accueil Client@Vider(Reponse) AUTOGOTOZ }&Reponse diff *(220){ GOTOerreur(&Reponse) AC GOTO Envoi de EHLO et lecture de la réponse Client@Remplir(«;r;n»_&Serveur_«EHLO ») Client@Vider(Reponse) AUTOGOTOZ }&Reponse diff *(250){ GOTOerreur(&Reponse) AC GOTO On dit qui envoie le message Client@Remplir(«>;r;n»_&Envoyeur@Adresse_«MAIL FROM: <») Client@Vider(Reponse) AUTOGOTOZ }&Reponse diff *(250){ GOTOerreur(&Reponse) AC GOTO On indique les destinataires pingouin i i=tailleenlongueur Destinataire §BoucleRcpt i=-*(1) Client@Remplir(«>;r;n»_&Destinataire<&i>@Adresse_«RCPT TO: <») Client@Vider(Reponse) AUTOGOTOZ }&Reponse diff *(250){ GOTOerreur(&Reponse) AC GOTONONNULPOURLESNULS %%BoucleRcpt &i GOTO On envoie le message Client@Remplir(«DATA;r;n») Client@Vider(Reponse) AUTOGOTOZ }&Reponse diff *(354){ GOTOerreur(&Reponse) AC pingouin Envoi Envoi=&Sujet_«>;r;nSubject:»_&Envoyeur@Adresse_« <»_&Envoyeur@Nom_«From: » i=tailleenlongueur Destinataire §BoucleTo i=-*(1) Envoi=«>»_&Destinataire<&i>@Adresse_« <»_&Destinataire<&i>@Nom_«;r;nTo: »_&Envoi GOTONONNULPOURLESNULS %%BoucleTo &i Client@Remplir(«;r;n.;r;n»_&Message_«;r;n;r;n»_&Envoi) Client@Vider(Reponse) AUTOGOTOZ }&Reponse diff *(250){ GOTOerreur(&Reponse) AC GOTO On se déconnecte Client@Remplir(«QUIT;r;n») REGOTO *(1) §Erreur GOTOPRINTDUTEXTE(;&TexteErreur) REGOTO *(0) APLUS