Envoyer un mail, sans passer par une application dédiée |
Bienvenue invité ( Connexion | Inscription )
Il est interdit de poster directement à la racine de ce forum.
Veuillez créer votre topic dans le sous-forum approprié.
Envoyer un mail, sans passer par une application dédiée |
20 Jul 2004, 18:59
Message
#1
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 |
Bonjour,
est-ce qu'il est possible d'envoyer un mail sans passer par une application dédiée (comme Mail, Entourage...)? J'ai une application qui collecte des infos sur l'ordi sur lequel elle est installée (addresse IP entre autre), et je voudrais que l'utilisateur puisse s'envoyer toutes ces infos sur une adresse mail de son choix lorsqu'il est absent. Bien entendu, il faut qu'il y ai le minimum de configuration pour l'utilisateur (il aura juste à rentrer l'adresse de son serveur smtp). -- Arthur; PS: mon appli est en Objective-C -------------------- |
|
|
20 Jul 2004, 19:03
Message
#2
|
|
Moderating Daemon Groupe : Modérateurs Messages : 6 345 Inscrit : 22 Feb 2004 Lieu : Yvelines/Cambridge (GB), dans mon pantalon Membre no 15 207 |
QUOTE (Arty @ 20 Jul 2004, 19:59) Bonjour, est-ce qu'il est possible d'envoyer un mail sans passer par une application dédiée (comme Mail, Entourage...)? J'ai une application qui collecte des infos sur l'ordi sur lequel elle est installée (addresse IP entre autre), et je voudrais que l'utilisateur puisse s'envoyer toutes ces infos sur une adresse mail de son choix lorsqu'il est absent. Bien entendu, il faut qu'il y ai le minimum de configuration pour l'utilisateur (il aura juste à rentrer l'adresse de son serveur smtp). -- Arthur; PS: mon appli est en Objective-C Tu les le RFC sur le smtp. C'est pas très compliqué comme protocole. -------------------- G5 Bi 2GHz rev A, ATI X800 XT
Alu 17" rev A MacBook core duo 1.83 GHz |
|
|
20 Jul 2004, 19:48
Message
#3
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 |
QUOTE (f_cam @ 20 Jul 2004, 20:03) Oui effectivement, ça n'a pas l'air très compliqué. Juste une petite chose: comment je dialogue avec le serveur smtp? Parce qu'un fois que le contacte est établi, je comprend bien qu'il suffit d'écrire ce qu'on veut (et de récupérer les réponses du serveur), mais comment j'établis la connection proprement dite? -------------------- |
|
|
20 Jul 2004, 19:52
Message
#4
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 263 Inscrit : 17 Nov 2002 Membre no 4 719 |
Voial un exempe de session de mail :
<- : ce qui entre -> : ce qui sort déja on se connecte sur le serveur, par exemple smtp.fai.fr sur le port 25 on recoit ca : -> 220 nomduserveursmtp <- HELO laonmetcekonveut\r\n -> 250 nomduserveursmtp <- MAIL FROM: <[email protected]>\r\n -> 250 Ok <- RCPT TO: <[email protected]>\r\n -> 250 ok <- DATA -> 354 blablablablabla <- Bonjour ginette c marcel, comment va tu ? <- \r\n.\r\n -> 250 Ok <- QUIT \r\n Voila, les codes que le serveur te renvoi , tu peux les tester a chauqe fois pour voir si tout se passe bien (du genre if ([reponse hasPrefix:@"250"]) { on continue ... ) au dernier code 250 t sur que ton mail é été envoyé ! Dans le data tu peux rajouter un "header",du genre CODE Subject: Message d'amour\r\n From:marcel\r\n To: ginette\r\n Ca c pas obligatoire masi c plsu joli d'avoir un objet et tutti quanti ... j'ai fait une fonction qui utilise les sockets bsd pour envoyer un mail et qui renvoi un code suivant si le mail a été envoyé ou pas. si ca t'interesse je te la donne. PS : j'ai mis \r\n pour bien montrer qu'il faut des fin de lignes de ce type, attention a ce que le sfin de ligne dans le mail soit toutes de ce type, et qu'il n"y ai pas de "." tout seul sur une ligne sinon le serveur detectera la fin du message. -------------------- Je suis connu aussi sous le doux nom de Fullstack, et je suis admin là : http://www.rbsoftware.net
Mon Blog : http://www.rbsoftware.net/wordpress/ Mes projets sourceforges : WebServerXKit iMailist |
|
|
20 Jul 2004, 20:20
Message
#5
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 |
QUOTE (jojo5 @ 20 Jul 2004, 20:52) OK, mais comment je me connecte au serveur depuis un programme en C? C'est avec les histoires de socket? -------------------- |
|
|
20 Jul 2004, 21:44
Message
#6
|
|
Moderating Daemon Groupe : Modérateurs Messages : 6 345 Inscrit : 22 Feb 2004 Lieu : Yvelines/Cambridge (GB), dans mon pantalon Membre no 15 207 |
Oui avec des sockets. En Obj-c tu as également NSStream pour te faciliter un peu la tache.
-------------------- G5 Bi 2GHz rev A, ATI X800 XT
Alu 17" rev A MacBook core duo 1.83 GHz |
|
|
20 Jul 2004, 22:35
Message
#7
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 988 Inscrit : 17 Jun 2001 Lieu : Nancy Membre no 388 |
Je crois qu'il y a plus simple...
Pour cela il suffit d'utiliser le framework "Message.framework" inclus dans Mac OS X... Tu ajoutes ce framework à ton projet, tu l'importes dans ton code : CODE #import <Message/NSMailDelivery.h> Et après c'est on ne peut plus simple : CODE NSString *objet = @"Objet du mail";
NSString *message = @"Contenu du mail"; NSString *mailDestination = @"[email protected]"; if ([NSMailDelivery deliverMessage:message subject:objet to:mailDestination]) { NSLog(@"Le message a été transmis..."); } else { NSLog(@"Le message n'a pas été transmis..."); } Ce message a été modifié par Ludopac - 20 Jul 2004, 22:36. -------------------- D-Vision 3.2.2 (universal)
D-Volution 2.0.2 D-Subtitler 1.0 D-Trace 1.0.2 iMac core2duo 2Ghz, 3Go de DDR2, 320GO sous Mac OS X.4 MacBook Pro 1.83, 1G0 de DDR2, 80GO sous Mac OS X.4 Athlon XP 2600 + 512 Mo de DDr, 80 Go sous Suse 10/Win Xp |
|
|
21 Jul 2004, 00:07
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 |
Ca a l'air pas mal, mais... comment indiquer quel serveur smtp utiliser?
-------------------- |
|
|
21 Jul 2004, 07:33
Message
#9
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 263 Inscrit : 17 Nov 2002 Membre no 4 719 |
personnelment je te déconseille ce framework, car il travaille avec mail, si la gars ne se sert pas de mail et n'a pas de boite configuré, il ne pourra rien envoyer.
De toute fcaon le meilleur moyen et de faire sa socket soi -meme et de se connecter. Pour les NSStream, je trouve ca beaucoup plus compliqué et lourd qu'une socket bsd, mais bon c une question de choix -------------------- Je suis connu aussi sous le doux nom de Fullstack, et je suis admin là : http://www.rbsoftware.net
Mon Blog : http://www.rbsoftware.net/wordpress/ Mes projets sourceforges : WebServerXKit iMailist |
|
|
21 Jul 2004, 15:00
Message
#10
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 988 Inscrit : 17 Jun 2001 Lieu : Nancy Membre no 388 |
QUOTE(jojo5 @ 21 Jul 2004, 06:33) personnelment je te déconseille ce framework, car il travaille avec mail, si la gars ne se sert pas de mail et n'a pas de boite configuré, il ne pourra rien envoyer. De toute fcaon le meilleur moyen et de faire sa socket soi -meme et de se connecter. Pour les NSStream, je trouve ca beaucoup plus compliqué et lourd qu'une socket bsd, mais bon c une question de choix [right][snapback]784587[/snapback][/right] Je ne me servais pas de mail il y a quelques temps et ce framework fonctionnait. Même si tu ne te sert pas de Mail, ton compte mail principale est connu de Mac OS X. C'est dans ce compte qu'il va chercher le serveur smtp. Maintenant peut-être que d'autres solutions fonctionnent mieux, je n'en sais rien. Mais celle-ci et simple et devrait marcher dans la grande majorité des cas... -------------------- D-Vision 3.2.2 (universal)
D-Volution 2.0.2 D-Subtitler 1.0 D-Trace 1.0.2 iMac core2duo 2Ghz, 3Go de DDR2, 320GO sous Mac OS X.4 MacBook Pro 1.83, 1G0 de DDR2, 80GO sous Mac OS X.4 Athlon XP 2600 + 512 Mo de DDr, 80 Go sous Suse 10/Win Xp |
|
|
21 Jul 2004, 16:08
Message
#11
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 263 Inscrit : 17 Nov 2002 Membre no 4 719 |
Ben si tu utilise cette methode alors il faut bien rpéciser dans un fichier d'aide ou dans le logiciel que si auun compte n'est configuré alors cela ne fonctionnera pas ...
-------------------- Je suis connu aussi sous le doux nom de Fullstack, et je suis admin là : http://www.rbsoftware.net
Mon Blog : http://www.rbsoftware.net/wordpress/ Mes projets sourceforges : WebServerXKit iMailist |
|
|
21 Jul 2004, 22:42
Message
#12
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 |
Suite à vos conseil j'ai lu un peu de doc sur les socket, cherché des bouts de codes sur le net, et j'ai réussi à écrire un petit programme envoyant un mail tout simple à une adresse. Le problème, c'est que ça semble marcher très bien sur mon serveur smtp chez wanadoo, mais ça ne marche plus quand je le test sur le serveur smtp de mon ordi (Postfix, activé avec Postfix Enabler).
Alors est-ce que quelqu'un serait assez gentil pour essayer mon programme et me coller ici ce qu'il lui affiche? L'utilisation est super simple: CODE ./mailer -s serveur.smtp.fr -e [email protected] -d [email protected] Voilà, si une ou deux personnes sont assez gentilles pour tester... Merci d'avance!! -------------------- |
|
|
21 Jul 2004, 23:16
Message
#13
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 291 Inscrit : 29 May 2004 Lieu : 48°50'27" N, 2°13'43" E Membre no 19 336 |
QUOTE Voilà, si une ou deux personnes sont assez gentilles pour tester... Merci d'avance!! voici le résultat chez moi: CODE Last login: Thu Jul 22 00:08:17 on ttyp2 Welcome to Darwin! Ice-Cube:~ cbrandt$ cd /Users/cbrandt/Desktop/mailer Ice-Cube:~/Desktop/mailer cbrandt$ ./mailer ./mailer -s [serveur] -e [expediteur] -d [destinataire] Ice-Cube:~/Desktop/mailer cbrandt$ ./mailer -s smtp.free.fr -e [email protected] -d [email protected] 220 postfix4-2.free.fr ESMTP Postfix helo test mail from: <[email protected]> -->250 postfix4-2.free.fr <-- rcpt to: <[email protected]> -->250 Ok <-- 250 Ok 354 End data with <CR><LF>.<CR><LF> -->250 Ok: queued as E64121AEA87 <-- Ice-Cube:~/Desktop/mailer cbrandt$ et le mail m'est bien retourné... bon courage avec les socket, car j'en ai bavé quand je m'em suis servi pour écrire un client ftp... chaque serveur ou presque avait un comportement différent, malgré les rfc. a+ -------------------- Membre no. 14 du club des AIPBP (Anciens Inscrits Pas Beaucoup de Posts) Voir la liste
|
|
|
22 Jul 2004, 00:02
Message
#14
|
|
Moderating Daemon Groupe : Modérateurs Messages : 6 345 Inscrit : 22 Feb 2004 Lieu : Yvelines/Cambridge (GB), dans mon pantalon Membre no 15 207 |
Regardes avec tcpdump, ca peut éclairer sur ce qui se passe dans les cas où ça ne marche pas.
-------------------- G5 Bi 2GHz rev A, ATI X800 XT
Alu 17" rev A MacBook core duo 1.83 GHz |
|
|
22 Jul 2004, 09:02
Message
#15
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 263 Inscrit : 17 Nov 2002 Membre no 4 719 |
ben c petit code est nickel, manque plus qu'a verifier achaque etape de l'envoi que tout se passe bien
-------------------- Je suis connu aussi sous le doux nom de Fullstack, et je suis admin là : http://www.rbsoftware.net
Mon Blog : http://www.rbsoftware.net/wordpress/ Mes projets sourceforges : WebServerXKit iMailist |
|
|
22 Jul 2004, 09:48
Message
#16
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 |
En fait mon pb ne doit pas venir du code en lui-même parce qu'en général ça marche très bien. Mais parfois, j'ai l'impression qu'il lit une ligned en trop, ou qu'il ne lit pas la bonne ligne en provenance du serveur (en général c'est après avoir envoyé "data\n"), du coup il se bloque...
Je vais essayer de comprendre ce qui se passe, mais ce qui m'énerve le plus, c'est que quand j'essaye d'envoyer le message en me connectant au serveur avec telnet, la séquence est exactement la même. -------------------- |
|
|
22 Jul 2004, 12:06
Message
#17
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 291 Inscrit : 29 May 2004 Lieu : 48°50'27" N, 2°13'43" E Membre no 19 336 |
Essaie de terminer tes commandes helo, mail from: et rcpt to: (lignes 24, 53, 56) par \r\n au lieu de \n seul. D'ailleurs, je me semande si les < et > sont nécessaires (pour mail from: et rcpt to:)
Vérifie aussi si les commandes ne devraient pas être en majuscules, certains serveurs sont sensibles... Ce message a été modifié par cbrandt - 22 Jul 2004, 12:09. -------------------- Membre no. 14 du club des AIPBP (Anciens Inscrits Pas Beaucoup de Posts) Voir la liste
|
|
|
22 Jul 2004, 13:21
Message
#18
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 1 293 Inscrit : 25 Apr 2003 Membre no 7 294 |
Est-ce que tu attends bien les réponses du serveur avant d'envoyer chaque séquence ? Y'en a qui ont eu ce type de problèmes en faisant la même chose en script shell, c'était un peu trop brutal, y'avait pas de synchro entre le client et le serveur, alors il a fallu employer expect. Donc toi avec les sockets, vérifie que tu dialogues correctement avec le serveur, en attendant bien ses réponses, même si tu les connais d'avance, avant d'envoyer la suite.
|
|
|
22 Jul 2004, 18:16
Message
#19
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 263 Inscrit : 17 Nov 2002 Membre no 4 719 |
les <> ne sont pas nécessaire mais le protocle officiel, decrit dans les rfc, c comme ca, donc on les mets ;-)
termine tout par \r\n et fait une fonction qui efface les "." qui sont tous seul sur une ligne, fait également une fonction qui modifie tout les \n ou \r de ton texte en \r\n sinon le mail ne sera pas bien lisible sur pc -------------------- Je suis connu aussi sous le doux nom de Fullstack, et je suis admin là : http://www.rbsoftware.net
Mon Blog : http://www.rbsoftware.net/wordpress/ Mes projets sourceforges : WebServerXKit iMailist |
|
|
23 Jul 2004, 08:31
Message
#20
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 |
QUOTE(jojo5 @ 22 Jul 2004, 19:16) les <> ne sont pas nécessaire mais le protocle officiel, decrit dans les rfc, c comme ca, donc on les mets ;-) termine tout par \r\n et fait une fonction qui efface les "." qui sont tous seul sur une ligne, fait également une fonction qui modifie tout les \n ou \r de ton texte en \r\n sinon le mail ne sera pas bien lisible sur pc [right][snapback]786516[/snapback][/right] OK, merci. -------------------- |
|
|
23 Jul 2004, 08:46
Message
#21
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 263 Inscrit : 17 Nov 2002 Membre no 4 719 |
comme dit ploute, attend bien les réponse du serveur a chque foi set controle les avant de passer a une autre commande, sinon tu risque d'avoir des problem si le serveur sui pas la cadence.
En plsu ca te permet de verifier que tout se passe bien. Petite note, pour ceux qui ont des .mac, le smtp requiert une authentification apres le HELO il faut faire "auth plain trucencoderenbase64" trucencoderenbase64 vosu pouvez l'encoder comme ca : CODE perl -MMIME::Base64 -e 'print encode_base64("username\0username\0motdepasse");'
-------------------- Je suis connu aussi sous le doux nom de Fullstack, et je suis admin là : http://www.rbsoftware.net
Mon Blog : http://www.rbsoftware.net/wordpress/ Mes projets sourceforges : WebServerXKit iMailist |
|
|
Nous sommes le : 5th June 2024 - 23:43 |