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 :

envoie de mail


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut envoie de mail
    Bonjour,

    J'utilise le code suivant pour ennvoyer des mails. Ce dernier marche trés bien quand je suis sur un serveur ( avec des routages et service exchange).
    Par contre, si je suis sur mon pc sous XP, ça ne fonctionne pas et j'ai le message d'erreur suivant : Failed to connect to mail server: Bad file descriptor.

    ça parait logique que ça ne fonctionne pas, mais comment puis je contourner le probléme. Que faut il que j'installe sur mon pc.

    use MIME::Lite;

    $msg = MIME::Lite->send('smtp', "smtp1.domaine.com", Timeout=>60);
    $msg = MIME::Lite->new(
    From =>"$Expediteur",
    To =>"$Destinataire",
    Subject =>"${Machine} / Corpsdusujet: ",
    Type =>'multipart/mixed'
    );

    $msg->send;

  2. #2
    Expert confirmé
    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
    Par défaut
    Tu pourrais installer un serveur smtp sur ton PC, mais ce n'est pas vraiment nécessaire : il suffit que tu ais accès à un serveur SMTP quelconque (pas forcément en local), par exemple celui de ton fournisseur d'accès.

    --
    Jedaï

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut comment faire ?
    Comment puis je avoir l'accés ?? en tapant quel paramétre ??

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Pour ma part, j'utilise Mail::Sender

  5. #5
    Membre confirmé

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Par défaut
    moi je fais à la main (comme avec telnet) ^^
    Voici une fonction permettant d'envoyer un mail anonyme à n'importe qui (avec si l'on veut la possibilité de spammer)
    Rq : il te faut bien sur un serveur smtp sur lequel tu t'appuis...
    dans mon formulaire, on peux choisir le serveur smtp, s'il n'y en as pas, j'en ai un par défault histoire que le script plante pas. j'ai mis celui de free dans mon exemple... à adapter si vous n'êtes pas chez eux

    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
     
    sub sendMail(){ 
        use IO::Socket;
        use vars qw(
    	$port $iaddr $paddr $proto $line $socket $nb $pause
        );
     
        my ($mailDest, $mailSource, $subject, $message, $source, $dest, $nbMail, $serveurSMTP)=@_; # $source et $dest sont les infos visibles dans le mail
     
        $serveurSMTP='smtp.free.fr' unless(defined($serveurSMTP));
        $nbMail=1 unless(defined($nbMail));
        $port=25;   
        $pause=60;
     
        for ($nb=1; $nb<=$nbMail;$nb++){
            $socket = IO::Socket::INET->new(
    	    PeerAddr => $serveurSMTP,
    	    Proto => "tcp",
    	    PeerPort => $port
    	);
    	$line=<$socket>; #220 smtp2-g19.free.fr ESMTP Postfix
    	print $socket "HELO you\r\n";
    	$line=<$socket>;#250 smtp2-g19.free.fr
    	print $socket "MAIL FROM: <$mailSource>\r\n";
    	$line=<$socket>; #250 Ok
    	print $socket "RCPT TO: <$mailDest>\r\n";
    	$line=<$socket>; #250 Ok
    	print $socket 'DATA'."\r\n";
    	$line=<$socket>; #354 End data with <CR><LF>.<CR><LF>
    	print $socket "From: $source\r\n";
    	print $socket "To: $dest\r\n";
    	print $socket "Subject: $subject\r\n";
    	print $socket $message;
    	print $socket "\r\n.\r\n";
    	$line=<$socket>; #250 Ok: queued as 396A473128
    	print $socket "QUIT\r\n";
    	$line=<$socket>; #221 Bye	
    	sleep($pause) if ($nb%20==0); #pour pas saturer la file du serveur chez free :p
        }
        return 0;
    }
    J'ai oublié de préciser :
    Bien sur à ne pas utiliser à de mauvaises fins...
    dans tous les cas on peut toujours vous retrouver si on le veut...

    bref... tentez pas de spammer la CIA ou des potes qui font un peu d'info...

  6. #6
    Membre confirmé

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Par défaut
    Citation Envoyé par vince2005
    Comment puis je avoir l'accés ?? en tapant quel paramétre ??
    généralement : smtp.'ton fournisseur d'accès'
    (pour free : smtp.free.fr, pour wanadoo : smtp.wanadoo.fr)
    le port smtp : 25
    Rq : pour tester si tu as l'axx fait un telnet par exemple

    Si ton FAI ne propose pas un serveur smtp (ce serai très étonnant), tu peux tjs en installer un en local ou scanner un peu le port 25, à priori t'en trouvera des reliable
    ++

  7. #7
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut nom du serveur SMTP
    Le nom de mon serveur smtp est "smtp1.NomDeMonEntreprise.com", et pourtant avec le code que j'utilise ça ne fonctionne pas.

  8. #8
    Membre confirmé

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Par défaut
    Citation Envoyé par vince2005
    Le nom de mon serveur smtp est "smtp1.NomDeMonEntreprise.com", et pourtant avec le code que j'utilise ça ne fonctionne pas.
    bon je suppose que tu l'as bien mis à la place de "smtp1.domaine.com" dans ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $msg = MIME::Lite->send('smtp', "smtp1.domaine.com", Timeout=>60);
    Si tu n'es plus au sein de ton entreprise c'est tout simplement que le serveur smtp de ton entreprise n'est pas reliable...
    teste de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    telnet smtp1.NomDeMonEntreprise.com 25
    si tu n'arrive pas à te connecter c'est bien ça...
    dans ce cas utilise un autre serveur smtp.

    Sinon, si t'es dans ta boite, touche un mot à l'admin réseau pour qu'il te laisse un axx, il a surement fait un filtrage.

Discussions similaires

  1. Envoi de mail au format html
    Par Mephyston dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/01/2004, 12h29
  2. Envoi de mail au format Rich-Text
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 29/10/2003, 16h27
  3. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 11h22
  4. Outlook ne se ferme pas après un envoi de mail
    Par Joke dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/06/2003, 17h32
  5. envoi de mail, protocol SMTP langage C
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/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