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

Langage Perl Discussion :

[Email::MIME] Comment envoyer un Email ?


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Par défaut [Email::MIME] Comment envoyer un Email ?
    Bonsoir à tous ,

    Je suis nouveau dans le langage perl et suite à une demande de faire un script en perl pour envoyer des emails avec piéces jointes pour un projet , je suis mis à réaliser le script à partir d'une petite video ou tout est trés bien expliqué , pour ceux qui veulent:


    Mais j'ai tout de meme quelques questions à vous poser surtout par rapport à l'utilisation des modules , voici le code:


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    #!/usr/bin/perl 
     
    use strict ;
    use warnings;
    use Data::Dumper;
    use Email::MIME;
    use Email::Sender::Simple qw(sendmail);
    use Email::Sender::Transport::SMTP::TLS;
     
    my $email = Email::MIME-> create(
    	header_str => [
    		From => 'ternisien.sebastien@hotmail.fr',
    		To => 'ternisien.sebastien@gmail.com',
    		Subject => 'Creating Perl email',
     
     
     
     
    	],
    	attributes => {
     
    	encoding => 'quoted-printable',
    	charset => 'UTF-8',
    	},
     
    	body_str => "hello world",
     
    );
     
    my $transport = Email::Sender::Transport::SMTP::TLS->new(
    		host=>'smtp-mail.outlook.com',
    		port=>'587',
    		username=>'ternisien.sebastien@hotmail.fr',
    		password=>'rocket74829',
    		);
     
    try{
     
    	sendmail($email ,{transport=>$transport})
    	warn("email envoyé")
    }
    catch{
    	warn email:
    }
    Voici mes questions :

    1) Sur certains tuto à quoi correspond cette ligne : #!/usr/bin/perl exactement et des fois j'ai vu -v ou -w aprés à quoi cela correspond ?

    2) Quel service rend le module Data:: Dumper car je n'aie pas compris sont utilités ?

    3) qw(sendemail) veut dire quoi derriere Email::Sender::Simple?

    4) je vois que le module Email::Sender::Transport::SMTP::TLS gére seulement le TLS mais si c'est du SSL , qu'est qui faut mettre à la place ?

    et une derniére (oui , le relou^^)

    Sinon par rapport au try{}catch{} je ne comprends pas sa ne fonctionne pas , l'email est bien envoyé mais y passe quand meme dans le catch une solution?

    Merci d'avance pour toutes vos réponses en espérant ne pas avoir trop exagéré avec mes questions

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Question 1: la "shebang line" est propre au monde Unix ou Linux. Dans un script, une première ligne commençant pas #! indique au système d'exploitation quel est et où se trouve le programme à utiliser pour ce script. Par exemple #!/usr/bin/sh pour lancer un script shell. Ici, ça dit de lancer Perl et ça dit au système ou trouver l'exécutable Perl.

    L'option -w active les warnings, qui te donnent beaucoup d'indication sur d'éventuelle probables erreurs dans ton code. Elle n'est pas utile si tu utilises le pragma "use warnings;" plus moderne et plus pratique, comme le fait ton script.

    Question 2: Data:umper est un module important la commande Dumper qui permet de visualiser (afficher) les structures de données complexes. Très utile pour déboguer les programmes ayant ce type de structures de données. Permet accessoirement de "sérialiser" ce genre de structure de données, c'est à dire de sauvegarder sur disque une structure de donnée et de la recharger en mémoire dans un autre programme (ou le même dans une autre exécution).

    Question 3: use Email::Sender::Simple qw(sendmail); dit à Perl d'importer dans le programme actuel la fonction sendmail du module Email::Sender::Simple. En l'occurrence, tu pourrais aussi bien écrire: use Email::Sender::Simple ("sendmail");

    Question 4: je ne connais pas assez bien ce module, je ne sais pas.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Par défaut
    Merci Lolo pour ta réponse clair et précise

  4. #4
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour,
    Pour SSL/TSL tu trouveras une excellente explication ICI
    Ainsi qu'une discussion sur ce forum sur StartTLS
    TLS n'étant "que" le successeur de SSL, en général les fournisseurs d'accès regroupe l'ancien et le nouveau sous une même bannière SSL/TLS !
    Les 3 sécurités de connexion étant Aucune, SSL/TLS et StartTLS.

    [EDIT 10:55] Pour le code il manque des ; et tu as un : à la place de ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ....
     
    try{
     
    	sendmail($email ,{transport=>$transport});
    	warn("email envoyé");
    }
    catch{
    	warn email;
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/05/2007, 14h45
  2. Comment envoyer un email avec Access
    Par cortex024 dans le forum Access
    Réponses: 24
    Dernier message: 26/02/2007, 10h49
  3. Comment envoyer des email vers lotus notes?
    Par WASFI dans le forum Access
    Réponses: 4
    Dernier message: 21/01/2007, 14h48
  4. Comment envoyer un emailing à heure fixe ?
    Par nath-0-0 dans le forum E-Mailing
    Réponses: 2
    Dernier message: 21/03/2006, 18h30
  5. [CF][VB.NET] Comment envoyer un email d'un PPC ?
    Par chocogrenouille dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 18/01/2006, 13h56

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