perl et envoi de mail

perl et envoi de mail - Perl - Programmation

Marsh Posté le 26-03-2007 à 09:02:50    

salut,
 
J'utilise se script perl pour envoyer un mail

Code :
  1. #!/usr/bin/perl
  2. sub email;
  3. email "from\@domaine.tld","to\@domaine.tld","test","ligne 1\nligne 2\n";
  4. # suivant votre configuration, il peut être nécessaire de changer le chemin vers
  5. sendmail (/usr/sbin/sendmail)
  6. sub email {
  7. my ($from,$to,$subject,$message)=@_;
  8.   eval{
  9.     open (MAIL, "|/usr/sbin/sendmail -t -oi -f \"$from\"" );
  10.     print MAIL ("To: $to\n" );
  11.     print MAIL ("From: $from\n" );
  12.     print MAIL ("Subject: $subject\n\n" );
  13.     print MAIL ("$message" );
  14.     close (MAIL);
  15.   };
  16. }


 
J'aurai voulu savoir si il etait possible de le modifier pour pouvoir joindre une pieces à mon mail ?
 
Merci à tous.

Reply

Marsh Posté le 26-03-2007 à 09:02:50   

Reply

Marsh Posté le 26-03-2007 à 10:27:28    

man sendmail [:spamafote]
option -attach pour une seul fichier ou -attachlist pour une list.
 
Mais perso je te recommanderais plutot d'utiliser des modules perl "qui vont bien" genre MIME::Lite ou Mail::Mailer

Reply

Marsh Posté le 26-03-2007 à 10:42:04    

en faisant un man sendmail,
je ne vois pas -attach dans les options
j'ai modifier le code comme ceci mais rien ne se passe
???

Code :
  1. $attach="/home/temp/file.csv";
  2. email($from,$to,$subject,$message,$attach);
  3. #-attach
  4. sub email {
  5. my ($from,$to,$subject,$message,$attach)=@_;
  6.   eval{
  7.     open (MAIL, "|/usr/sbin/sendmail -t -oi -f -attach \"$from\"" );
  8.     print MAIL ("To: $to\n" );
  9.     print MAIL ("From: $from\n" );
  10.     print MAIL ("Subject: $subject\n\n" );
  11.     print MAIL ("$message" );
  12.     print MAIL ("Attach: $attach" );
  13.     close (MAIL);
  14.   };
  15. }


Message édité par donny3 le 26-03-2007 à 10:42:47
Reply

Marsh Posté le 26-03-2007 à 10:52:02    

je viens d'essayer ne ligne de commande
et il ne reconnait pas les options
option -attach pour une seul fichier ou -attachlist pour une list

Citation :


/usr/sbin/sendmail: illegal option -- a

Reply

Marsh Posté le 26-03-2007 à 10:57:26    

j'ai rien dit :o j'étais persuadé que tu avais l'option sur sendmail en fait non ...

 

Du coup tu es obligé de faire un truc dans le genre:

Code :
  1. uuencode "file to be attach" | sendmail ...


ou un truc dans le genre ...
Mais c'est vraiment pas un problème perl ton truc, à la limite tu auras plus de réponses dans OSA

 

edit: A moins que tu te décides à utiliser un module perl...


Message édité par anapajari le 26-03-2007 à 10:58:16
Reply

Marsh Posté le 26-03-2007 à 13:13:06    

un module perl sympa et simple à utiliser : mime::lite

Reply

Marsh Posté le 26-03-2007 à 13:30:26    

ok
merci
le module perl j'en ai entendu parler
j 'ai vu des trucs dessus sur le net
mais la je peux pas l'installer
sinon dans mon cas j'ai essayer d'adapter le code perl
en y ajoutant cela
 
comme ceci

Code :
  1. open (MAIL, "uuencode '/home/temp/arc.csv'|/usr/sbin/sendmail -t -oi -f -attach \"$from\"" );


 
ça ne fonctionne pas trop
pour que ça fonctionne faudrait que je remodifie tout mon code
et n'utilise plus cette fonction
qui pourtant est bien pratique

Reply

Marsh Posté le 26-03-2007 à 13:42:39    

c'est pas une fonction mais un appel à un programme installé sur le serveur, tu es donc forcément limité au fonctionnement de celui-ci [:spamafote]

Reply

Marsh Posté le 05-04-2007 à 09:34:31    

pour MIME si jamais l'envoi de mail plante;
il se passe quoi ?
MIME envoi un message d'erreur sur le shell ?
j'ai la possibilité de recuperer le code retour de MIME ?
 
MErci

Reply

Marsh Posté le 05-04-2007 à 10:21:01    

http://search.cpan.org/~yves/MIME- [...] _just_text

Citation :

send HOW, HOWARGS...
...
As an instance method with no arguments, sends the message by the default mechanism set up by the class method. Returns whatever the mail-handling routine returns: this should be true on success, false/exception on error:

Code :
  1. $msg = MIME::Lite->new(From=>...);
  2. $msg->send || die "you DON'T have mail!";



RTFM [:dawak]

Message cité 1 fois
Message édité par anapajari le 05-04-2007 à 10:21:57
Reply

Marsh Posté le 05-04-2007 à 10:21:01   

Reply

Marsh Posté le 05-04-2007 à 11:39:28    


Et en français : LCPDM  :D  


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 23-04-2007 à 07:47:45    

LCPDM ah ah
mais si je souhaite utiliser log4perl
le die ne peut etre utiliser

Reply

Marsh Posté le 27-05-2012 à 10:25:05    

Salut,
 
J'aurais besoin d'aide sur ton msg stp . J'ai collé ton msg sur gedit puis nommé le fichier test.pl, je l'ai compilé perl test.pl. J'ai vérifié que Sendmail chargé par les paquets synaptiques était dans sbin, j'ai changé les adresses dans email "*****\@hotmail.com". Mais quand je compile , ca me met un temps d'attente puis revient à la normal mais je recois rien dans ma boite mail. Je ne comprends pas je ne sais pas si j'ai oublié de faire quelque chose avant.  
 
Je te remercie de ton aide , c'est important pour moi
 
 
 

donny3 a écrit :

salut,
 
J'utilise se script perl pour envoyer un mail

Code :
  1. #!/usr/bin/perl
  2. sub email;
  3. email "from\@domaine.tld","to\@domaine.tld","test","ligne 1\nligne 2\n";
  4. # suivant votre configuration, il peut être nécessaire de changer le chemin vers
  5. sendmail (/usr/sbin/sendmail)
  6. sub email {
  7. my ($from,$to,$subject,$message)=@_;
  8.   eval{
  9.     open (MAIL, "|/usr/sbin/sendmail -t -oi -f \"$from\"" );
  10.     print MAIL ("To: $to\n" );
  11.     print MAIL ("From: $from\n" );
  12.     print MAIL ("Subject: $subject\n\n" );
  13.     print MAIL ("$message" );
  14.     close (MAIL);
  15.   };
  16. }


 
J'aurai voulu savoir si il etait possible de le modifier pour pouvoir joindre une pieces à mon mail ?
 
Merci à tous.


Reply

Marsh Posté le 27-05-2012 à 12:48:23    

Avec le eval, il y a peu de chances que tu saches pourquoi ça échoue.
 
Il peut y avoir plusieurs causes:
- pas de login/password
- FAI qui bloque les mails de ses clients lorsque ceux-ci ne sont pas envoyés avec l'adresse qu'il a fourni (c'est le cas avec Orange)
- ?
 
Déjà, commences par utiliser un package de mail plus adapté comme Mail::Sendmail ou MIME::Lite.
 
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed