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 :

Envoi de mail avec le module MIME::Lite


Sujet :

Modules Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Envoi de mail avec le module MIME::Lite
    Bonsoir à tous,

    J'ai utilisé le module MIME::Lite dans Perl afin d'envoyer un message simple.
    (J'ai choisi ce module car il permet facilement d'envoyer des mails au format HTML et également de joindre des fichiers)

    Voici mon code très simple qui m'a servi de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/perl -w
     
    use MIME::Lite;
     
    $msg = MIME::Lite->build(
            From     => 'mike.meilleur@free.fr',
            To       => 'mike.meilleur@free.fr',
            Subject  => "Re: Hier soir !",
            Type     => 'TEXT',
            Encoding => 'quoted-printable',
            Data     => "C'était très bien, je te raconterai..."
        );
    #$msg->attr("content-type.charset" => "iso-8859-15");
    $msg->send('smtp', 'smtp.free.fr');
    L'envoi de mail fonctionne parfaitement.
    Par contre à la réception du mail, les accents ne s'affichent pas correctement :

    C'était trÚs bien, je te raconterai...

    J'ai essayé des tas de trucs sans succès.
    Avez-vous déjà rencontré ce problème ? Savez-vous comment le résoudre ?

    Pour info, j'utilise Perl sur Debian.

    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
    Je suppose que ton éditeur de texte écrit en UTF-8 (donc tes accents sont en utf-8) mais que MIME::Lite transmet ton message en prétendant que c'est du latin-1 ou quelque chose comme ça.
    Tu as plusieurs solutions, mais la meilleure reste de simplement dir à MIME::Lite que tu travailles en UTF-8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #!/usr/bin/perl -w
    use strict; use warnings;
    use utf8; 
    use MIME::Lite;
     
    my $msg = MIME::Lite->build(
            From     => 'machin@orange.fr',
            To       => 'machin@gmail.com',
            Subject  => "Re: AutoSend",
            Type     => 'TEXT',
            Encoding => 'quoted-printable',
            Data     => "Un autre mail passionant avec des accents ééé ààà"
        );
    $msg->attr("content-type.charset" => "utf-8");
    $msg->send('smtp', 'smtp.orange.fr');
    Ca marche très bien.

    --
    Jedaï

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Merci !!

    Effectivement, ça fonctionne mieux...sauf pour le sujet du message qui perd tous ses caractères accentués.

    Je vais continuer à chercher.

    Merci

  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 MikeMeilleur Voir le message
    Merci !!

    Effectivement, ça fonctionne mieux...sauf pour le sujet du message qui perd tous ses caractères accentués.
    En fait ça marche avec certains clients (GMail par exemple), mais une méthode plus portable est d'employer la méthode préconisée par la RFC2047 : encode avec quoted-printable le contenu de subject et indiquer que le charset est de l'utf-8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/usr/bin/perl -w
    use strict; use warnings;
    use utf8; 
    use MIME::Lite;
    use MIME::QuotedPrint qw(encode_qp);
    use Encode qw(encode);
     
    my $encoded = encode_qp(encode("UTF-8", "ééééééé àààààà êêêê"));
     
    my $msg = MIME::Lite->build(
            From     => 'machin@orange.fr',
            To       => 'truc@gmail.com',
            Subject  => "=?utf-8?Q?$encoded?=",
            Type     => 'TEXT',
            Encoding => 'quoted-printable',
            Data     => "Un autre mail passionant avec des accents ééé ààà"
        );
    $msg->attr("content-type.charset" => "utf-8");
    $msg->send('smtp', 'smtp.orange.fr');
    Là ça devrait marcher avec tout client mail qui se respecte !

    --
    Jedaï

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Bonsoir,

    Merci à tous pour votre aide.

    Maintenant, ça fonctionne parfaitement

    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoi de mail avec le module MIME::Lite
    Par lesconcours dans le forum Modules
    Réponses: 0
    Dernier message: 03/11/2009, 01h00
  2. [PEAR][Mail] Envoi de mail avec mime
    Par cli16 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/08/2007, 10h09
  3. [Mail] Probleme pour l'envoi de mails avec mime
    Par tof91 dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2006, 16h44
  4. envoi de mail avec sql server
    Par the_new dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/03/2005, 18h56
  5. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 11h22

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