Le fichier info.txt c'est quoi ?
du texte ?
un tableau xls ?
Peut-on avoir 1 ou 2 lignes du fichier que vous souhaitez envoyer ?
Version imprimable
Le fichier info.txt c'est quoi ?
du texte ?
un tableau xls ?
Peut-on avoir 1 ou 2 lignes du fichier que vous souhaitez envoyer ?
Citation:
L'opérateur de concaténation est le point (.)
Pardon c'est moi qui mélange des syntaxes de langages différents
La concaténation ce n'est pas + mais . en Perl
donc :
Code:$text = $text . $ligne . '\n';
[EDIT]Code:my $message = $text . "\n\n\Ci-dessus les info .\n\nBonne reception";
MERCI ggnore, j'étais en train de corriger
Merci BCP
De rien,
désolé pour l'erreur de syntaxe.
Là c'était dans l'urgence, si vous avez un peu de temps n'hésitez pas à en consacrer à Perl... entre les deux réveillions par exemple :mouarf:
Ça peu servir...
Peut-t-on séparer les lignes ( afficher ligne par ligne ... ligne 1 ligne 2 ligne 3 ) ? parce que en fait il mélange toutes les lignes et ça devient incompréhensif :s
avez-vous une idée svp
en ligne 4 il y a un '\n'Code:
1
2
3
4
5
6
7
8 my $text = "Bonjour,\n\nCi-dessous les info .\n\nBonne reception"; open (FIC,"tmp/info.txt ") or die "impossible d'ouvrir le fichier /tmp/info.txt\n $!"; while ( my $ligne = <FIC> ){ $text = $text . $ligne . '\n'; } close FIC; my $message = $text . "\n\n\Ci-dessus les info .\n\nBonne reception";
Donc il devrait passer à la ligne...
pour vérifier à la console Ajouter un print avant l'envoi :
Lorsque vous dites il ne passe pas à la ligne, c'est dans quoi ?Code:
1
2
3
4 close FIC; my $message = $text . "\n\n\Ci-dessus les info .\n\nBonne reception"; print $message;
le message édité par Outlook, Thunderbird... ???
En tout état de cause dans la console le print va l'afficher... qu'est-ce que ça donne ?
Dans outlouk il mélange toutes les lignes par contre quand je fais un print il me donne le bon format
il faudrait pas faire comme ça :
print (FIC "@contenudumail\n");
Quelques exemples :
la discussion
http://www.developpez.net/forums/d51...e/#post3062398
Attach
La doc de MIME::Lite
Code:Type =>'TEXT',
j'ai modifié le type comme text
[/QUOTE]Code:Type =>'TEXT',
j'ai fouié dans les articles ci-dessous mais pas de chance encore j'ai pas trouvé encoure la solution.
le soucis c'est le tableau c'est comme ça :
1 20 abcd 10
2 38 qsdf 60
3 98 azer 90
quand je fais un print la sortie est bonne mais lors de l'envoie de mail il mélange tout l'affichage dans outlook devient comme ça :
1 20 abcd 102 38 qsdf 603 98 azer 90
Pouvez-vous faire un copier/coller de la dernière mouture du programme ?
Merci !
le voila :)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Subject => $subject, Type => $mime_type, Data => $message ) or die "Error creating MIME body: $!\n"; $mime_msg->attach( Type => 'application/x-tar; charset=utf-8', Path => $tarfile, Filename => "info.txt", Disposition => "attachment", Encoding => 'base64' ) or die "Error attaching $tarfile archive: $!\n"; my $message_body = $mime_msg->body_as_string(); $mime_msg->attr("content-type.charset" => "utf-8"); MIME::Lite->send('smtp', '192.168.0.1', Timeout => 60); $mime_msg->send(); exit;
Bon, entre temps j'ai installé MIME-Lite dans mon environnement, ça peut servir...
Et ça fonctionne :
info.txt contient :
Le programme :Citation:
coucou,
c'est moi :
dmganges
et reçu dans Thunderbird le fichier joint FichierResultat.txt :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #!/usr/bin/perl use strict; use warnings; use MIME::Lite; my $text = "Bonjour,\n\nCi-dessous les infos :\nBonne reception !\n\n"; open (FIC,"info.txt") or die "impossible d'ouvrir le fichier info.txt\n $!"; while ( my $ligne = <FIC> ){ $text = $text . $ligne; } close FIC; my $message = $text . "\n\n\Ci-dessus les infos !"; my $msg = MIME::Lite->new( From => 'xxxxxxxxxxxxxx@free.fr', To => 'xxxxxxxxxxxxxx@yahoo.fr', Subject => 'Perso', Type => 'TEXT', Data => $message, Filename => "FichierResultat.txt", ); $msg->send('smtp','smtp.orange.fr', Debug=>1, Timeout => 5 );
Et je ne vois pas d'anomalie dans ton programme !Citation:
Bonjour,
Ci-dessous les infos :
Bonne reception !
coucou,
c'est moi :
dmganges
Ci-dessus les infos !
En effet pas d'anomalie mais le problème c'est que mon fichier contient des lignes trés longue et du coup ça mélange tout, j'ai modifié le fichier j'ai mis juste des mots et ça passe par contre avec mes lignes c'est compliqué :s
il n ya pas une solution pour séparer les lignes avec des traits ---- ou des points .....
en fait les lignes sont trés longues du coup elles se mélangent
exemple de ligne
1987734524 ; abcdeff ; 2013/10/01 ; pas de modification ; 2013/09/02 abcdef modification faite
En toute rigueur la longueur des lignes n'a rien à voir.
Il y a ou n'y a pas de '\n' en fin de ligne...
S'il y a une ligne longue dans le fichier elle sera pliée dans Outlook !
Si non il faut la tronçonner dans le programme... ça ne sera pas plus lisible !
Pour l'instant je n'ai pas idée !
Demain peut-être...
[EDIT 21:43] :
Code:
1
2
3
4 while ( my $ligne = <FIC> ){ $text = $text . $ligne; $text = $text . "\n\n\----------------------------------\n\n"; }
Ce n'est pas mélangé, il manque juste les retours à la ligne.
J'ai cru comprendre que tu lis les messages dans Outlook. Essaie avec Thunderbird ou dans un webmail pour voir si c'est pareil. MS Windows en général et Outlook en particulier ne sont pas particulièrement réputés pour leur compatibilité...
Sinon, ton programme tourne sous quelle plateforme? Windows? Linux? autre? Peut-être un problème de retour chariot/nouvelle ligne incompatible...
Bonjour,
Je dis peut-être une ânerie, mais si j'ai bien compris, ce qui n'est pas acquit...
Il semble qu'au départ les résultats à transmettre soient dans un fichier Excel ?
Pourquoi ne pas transmettre le fichier Excel en pièce jointe comme çà :
J'ai essayé avec un fichier .cvs mais il y a un pb, pour l'instant je ne cherche pas, je ne vois pas l'utilité d'envoyer un .cvs pour l'ouvrir dans Excel alors qu'on peut transmettre un .xsl sans pb...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #!/usr/bin/perl use strict; use warnings; use MIME::Lite; my $message = "Bonjour,\n\nCi-joint le fichier info.xsl !\nBonne reception !\n\n"; my $msg = MIME::Lite->new( From => 'xxxxxxxxx@free.fr', To => 'xxxxxxxxx@yahoo.fr', Subject => 'Fichier excel joint', Type => 'TEXT', Data => $message, ); $msg->attach( Type => "application/msexcel", Id => 'info.xls', Path => 'info.xls', ); $msg->send('smtp','smtp.orange.fr', Debug=>0, Timeout => 5 );
ça marche j'arrive à envoyer ligne par ligne :)
mais j'arrive pas à envoyer le mail plusieurs personnes ( plusieurs adresses mail ).
To => 'mail1','mail2','mail3','mail4','mail5',
un point-virgule entre chaque adresseCode:To => 'xxx@yahoo.fr;xxx@free.fr',
OK pour moi :D
Nikel ça marche :) merci bcp