IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

Problème envoie de mails avec Mail::Sender et corps HTML


Sujet :

Modules Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Problème envoie de mails avec Mail::Sender et corps HTML
    Bonjour à tous,

    Voici mon premier post sur developpez.com . Je suis assez débutant en Perl, mais je m'en sors sauf avec ce fameux module. Je rencontre donc un problème avec le module Mail::Sender lorsque je souhaites envoyer tu texte en HTML.

    Sur le site du cpan :
    http://search.cpan.org/~jenda/Mail-S...L_alternatives
    Il y a un exemple assez clair, qui ne fonctionne pas pour moi. Voici le message d'erreur que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Can't find string terminator "*END*" anywhere before EOF at ./vpn_user_management.pl line 181.
    Bref, du coup, je ne sais pas trop comment m'en sortir. J'ai complètement fait copier/coller.

    Si quelqu'un pouvait m'aider sur ce coup, ca serait cool. Merci

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Les HEREDOC (ici, document) en Perl servent à inclure un texte de plusieurs lignes littéralement dans le programme, la syntaxe est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    my $string = <<"ENDOFTEXT";
    Ceci est un HEREDOC
    On peut passer à la ligne sans problème, 
    pour terminer le HEREDOC, il faut mettre 
    le marqueur de fin (ici ENDOFTEXT)
    tout seul sur une ligne, et vraiment tout seul !
        ENDOFTEXT
    par exemple le HEREDOC n'est pas encore fini, 
    car il y avait des espaces avant le marqueur.
    ENDOFTEXT
     
    print $string; # nous sommes de nouveau dans du code Perl
    Il y a des petites subtilités, mais en gros c'est ça.
    L'exemple que tu as copié-collé est indenté uniformément, il faut supprimer cette indentation, sinon le HEREDOC ne marchera pas.

    --
    Jedaï

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    ouaou impécable ça marche ! Merci

    Dernière petite question :
    Et si j'ai des variables ? Je fais comment pour qu'elles soient prisent en compte dans les heredocs ?

    Merci encore beaucoup

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par deimosfr Voir le message
    Dernière petite question :
    Et si j'ai des variables ? Je fais comment pour qu'elles soient prisent en compte dans les heredocs ?
    Ca fait partie des subtilités dont je parlais, tu sais que quand tu mets une chaine entre apostrophes (quote '), les variables ne sont pas interpolés tandis que quand tu la mets entre guillemets (double quote ") les variables sont interpolés ?
    Et bien pour un HEREDOC, le comportement des variables est déterminé par ce que tu mets autour du marqueur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    my $hello = "Hello world";
    print <<"EOD";
    Ceci est un HEREDOC avec interpolation :
    $hello
    EOD
     
    print <<'EOD';
    Ceci est un HEREDOC sans interpolation :
    $hello
    EOD
    --
    Jedaï

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je viens juste de trouver la réponse et tu me la postes juste au dessus. C'est génial !

    Merci encore beaucoup !!!!

Discussions similaires

  1. Problème à l'envoi de mail avec mail()
    Par noussa_nouha dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2009, 12h59
  2. Envoi et réception de mails avec le framework 2.0
    Par abdallah2007 dans le forum ASP.NET
    Réponses: 13
    Dernier message: 26/06/2008, 18h35
  3. [Mail] Envoi d'un e-mail avec pièce jointe
    Par nixonne dans le forum Langage
    Réponses: 1
    Dernier message: 02/07/2007, 13h57
  4. Réponses: 12
    Dernier message: 12/02/2007, 12h34
  5. [Mail] Envoi d'un e-mail avec piece jointe
    Par ctrl+z dans le forum Langage
    Réponses: 13
    Dernier message: 15/12/2006, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo