Page 2 sur 3

Publié : sam. 17/avr./2004 20:58
par nico
Chris a écrit : Tu as programmé tous tes logiciels qui accèdent à Internet, alors!
Navigateur Web
Log de messagerie
Pare-feu
etc...
:wink:

Chris :)

Si seulement je pouvais ! :lol:

J'ai vu sur le net, un logiciel gratuit qui permet de sauvegarder les mots de passe qui sont demandés sur le net, un bel exemple de gratuité pour espionner, tu ne crois pas!

Window étant une passoire, j'évite d'agrandir les trous.

Je te rassure, ça n'a rien avoir avec ton log :D :wink:

Publié : sam. 17/avr./2004 21:17
par Chris
@Oliv:

Voilà la routine. Je l'ai prise sur CodeArchiv, et je l'ai modifiée pour envoyer les fichiers.

Code : Tout sélectionner

Procedure send(msg.s)
  SendNetworkData(ConnID,@msg,Len(msg))
EndProcedure

Procedure.s wait()
  res=""
  For tmp=1 To 4999
    res+" "
  Next
  ReceiveNetworkData(ConnID,@res,4999)
  res=Left(res,3)
  ProcedureReturn res
EndProcedure

Procedure.l sendmail(mailserver.s,mailto.s,mailfrom.s,subject.s,msgbody.s)
  If InitNetwork()
    ConnID = OpenNetworkConnection(mailserver,25)
    If ConnID
      wait()
      error=0
      If res="220"
        send("HELO "+mailfrom+cr)
        wait()
        If res="250"
          Delay(100)
          send("MAIL FROM: <"+mailfrom+">"+cr)
          wait()
          If res="250"
            send("RCPT TO: <"+mailto+">"+cr)
            wait()
            If res="250"
              send("DATA"+cr)
              wait()
              If res="354"
                Delay(100)
                ;/ Modifié à partir d'ici pour l'envoi des fichiers par MIME
                ;/ La routine ne gère pas la totalité des formats, seulement
                ;/ le format texte(ascii).
                ;/ Il y a une routine plus complète dans CodeArchiv, mais que
                ;/ je n'ai pas réussi à faire fonctionner.
                ;- Partie 1 : En tête
                send("From: <"+mailfrom+">"+cr)
                send("To: <"+mailto+">"+cr)
                send("Subject: "+subject+cr)
                send("Date: "+D$+cr)
                send("MIME-Version: 1.0"+cr)
                send("Content-Type: multipart/mixed;"+cr)
                send("	boundary="+Chr(34)+"-=_NextPart"+cr+cr)
                
                ;- Partie 2 : Heuuu!!! Je sais pas
                send("X-Priority: 3"+cr)
                send("X-MSMail-Priority: Normal"+cr)
                send("X-Mailer: PBMailer"+cr)
                send("X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409"+cr+cr)
                send("This is a multi-part message in MIME format."+cr+cr)
                
                ;- Partie 3 : Texte du message
                send("---=_NextPart"+cr)
                send("Content-Type: text/plain;"+cr)
                send("charset="+Chr(34)+"iso-8859-1"+Chr(34)+cr)
                send("Content-Transfer-Encoding: 7bit"+cr+cr)
                send(msgbody +cr+cr); Message
                
                ;- Partie 4 : Piece jointe
                ResetList(Fichiers())
                While NextElement(Fichiers())
                  If Fichiers()\Selected = 1
                    Fichier$ = Fichiers()\Fichier
                    send("---=_NextPart"+cr)
                    send("Content-Type: application/octet-stream;"+cr)
                    send("name="+Chr(34)+GetFilePart(Fichier$)+Chr(34)+cr)
                    send("Content-Transfer-Encoding: 7bit"+cr)
                    send("Content-Disposition: attachment; filename="+Chr(34)+GetFilePart(Fichier$)+Chr(34)+cr);"+cr)
                    Delay(200)
                    
                    If ReadFile(0, Fichier$)
                      Buffer.l = Lof()
                      *Mem0= AllocateMemory(Buffer)
                      If *Mem0
                        ReadData(*Mem0, Buffer)
                        send(PeekS(*Mem0, Buffer) + cr)
                      EndIf
                    EndIf
                    ;/ Jusqu'ici
                    send(cr)
                    send("---=_NextPart"+cr)
                    send("--"+cr+"--"+cr+cr)
                    Delay(150)
                  EndIf
                Wend
                
                send(""+cr)
                send("."+cr)
                wait()
                If res="250"
                  Delay(100)
                  send("QUIT"+cr)
                  wait()
                  ProcedureReturn 1
                EndIf
              EndIf
            EndIf
          EndIf
        EndIf
      EndIf
      CloseNetworkConnection(ConnID)
    EndIf
  EndIf
EndProcedure

sendmail(Serveur$,Adresse$,Expediteur$,Sujet$,Message$)
@Julien:

Merci :wink:
Je vais tester ça

@Nico

Si il y a des trous de sécurité dans mon prog, c'est à l'insu de mon plein gré :lol:

Chris :)

Publié : sam. 17/avr./2004 23:16
par Chris
@Julien

Tu as déjà réussi à utiliser la routine que tu m'as envoyée?

Parce que pour moi, impossible de me connecter :cry:

J'arrive à envoyer des messages de mon compte OVH à mon compte Wanadoo en passant par Outlook Express, mais pas avec la routine.

Il doit manquer un paramètre à envoyer. :cry:

Chris :)

PS: Personne ne connait un programme qui saurait intercepter les commandes envoyées par mon log de messagerie, et les codes de retour du serveur, et les afficher dans une fenêtre ou les mettre dans un fichier?

Une sorte de sniffer, mais en interne. Je connais des logiciels qui savent intercepter les accès à la base de registre, ou aux dll, mais dans ce domaine, je ne vois pas :?

Chris :)

Publié : sam. 17/avr./2004 23:26
par julien
si ça semble marché !

popbeforesmtp("pop3.domaine.com","contact@domaine.com","motdepassepop")

Les paramètre ->
adresse pop3
nom d'utilisateur (email en entier ou juste le truc avant le @)
le mot de passe


Qu'est ce que tu as comme message d'erreur ?
si c bon ça marque 'Identification OK'

Et après il ont ton IP et tu peux envoyer un email avec ta routine pour envoyer le mail sans te faire jeter !

Si tu veux la source complete (sans mes modif) je te la poste en dessous de l'autre
@+

Publié : sam. 17/avr./2004 23:30
par cederavic
tu veut sniffer outlook? fait gaffe il sen pas bon :lol:
pour le protocol, tu trouvera bonneur anglais ici : http://www.ietf.org/rfc/rfc2821.txt et bonneur français ici : http://abcdrfc.free.fr/rfc-vf/rfc821.html mais surement moin complet car non mis a jour depuis avril 2001
amuse toi bien :)

Publié : sam. 17/avr./2004 23:36
par Chris
Non, si la source complète, c'est celle de CodeArchiv, je l'ai déjà.

Pour le message d'erreur, j'ai la boite du code;

Code : Tout sélectionner

MessageRequester("","Erreur",#MB_ICONERROR)
, puis le mail est envoyé normalement à OVH.
Et mon mail me revient non distribué.

Bon, je vais déjà revoir mes paramètres

Chris :)

@ Cederavic
Merci, je vais regarder ça :wink:

Chris :)

Publié : sam. 17/avr./2004 23:47
par julien
je pense que sa vient de tes paramètre car pour ovh j'ai mis ceci et ça marche bien !


"pop3.nomdudomaine.xxx","adresse@domaine.xxx","mon_mot de passe pop3"

Publié : sam. 17/avr./2004 23:52
par Chris
Georges BRASSENS avait une chanson qui disait:
Le temps ne fait rien à l'affaire
Quand on est con, ...on est con!
Je viens de vérifier!... C'EST VRAI

Ca fait à peu près deux heures que j'essaye ce code, et que ça ne marche pas, et je viens seulement de m'appercevoir que mon serveur pop, c'est pop3.mon domaine.com, et pas pop.mon domaine.com.

Et pourtant, c'est bien la première chose à vérifier, les paramètres :lol:

Ca marche. :10: :multi:

Chris :)

Publié : dim. 18/avr./2004 0:10
par julien
on dit qu'avec l'âge sa s'empire... :(

Moi aussi je m' étais fait avoir la 1ere fois sur ce code

et pourtant je t'avais mis les bon paramètres (pop3) :lol:

Publié : dim. 18/avr./2004 5:48
par Chris
Une nouvelle version est en ligne

- Prise en charge des connexions ou on doit se loguer avant de poster. (Sur OVH ça fonctionne. Sur les autres, ???)

On peut maintenant redimensionner la fenêtre, et modifier la taille des listes.

A VENIR :
- Gestion des codes d'erreur.
- Liste des fichiers transmis, avec la date, l'heure, etc... sous forme de tableau .csv
- Vérification de la présence de l'en-tête, avant l'envoi
- Editeur d' en-tête incorporé

Dites moi comment ça fonctionne chez vous, svp.
Et merci à Julien pour la routine de connexion avec identification ;)

Et vérifiez vos paramètres avant de me dire que ça ne fonctionne pas, même les meilleurs se font avoir. La preuve, 2 post plus haut :lol:

Chris :)

Publié : dim. 18/avr./2004 15:02
par Le Soldat Inconnu
voila ce que je reçois :
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: PBMailer
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409

This is a multi-part message in MIME format.

---=_NextPart
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

test soft de chris

---=_NextPart
Content-Type: application/octet-stream;
name="GetDrive.pb"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="GetDrive.pb"
; Auteur : Le Soldat Inconnu
; Version de PB : 3.90
;
; Explication du programme :
; Récupérer la lettre et le type (disquette, disque dur, etc...) de tous les lecteurs présents sur l'ordinateur.

Structure DriveInfos
DriveLetter.s
DriveType.l
DriveTypeString.s
NameOfVolume.s
EndStructure
NewList DriveList.DriveInfos()

Procedure GetDrive(ListDriveType.l)
Protected Drive.s, DriveLetter.s, DriveType.l, Start.l, LengthDrive.l, DriveTypeString.s
#REMOVABLE_DRIVE = 1
#FIXED_DRIVE = 2
#REMOTE_DRIVE = 4
#CDROM_DRIVE = 8
#RAMDISK_DRIVE = 16
#UNKNOWN_DRIVE = 32
#ALL_DRIVE = 63

; On vide la liste
ClearList(DriveList())

; On récupère la lettre des différents lecteurs présent sur l'ordinateur
Drive = Space(255)
LengthDrive = GetLogicalDriveStrings_(255, @Drive)

For Start = 0 To LengthDrive - 4 Step 4

DriveLetter.s = PeekS(@Drive + Start, 3) ; on récupère une lettre

DriveType.l = GetDriveType_(@DriveLetter) ; on récupère le type du lecteur

Select DriveType ; On donne un nom au type de lecteur
Case #DRIVE_REMOVABLE : DriveType = #REMOVABLE_DRIVE : DriveTypeString.s = "Disquette"
Case #DRIVE_FIXED : DriveType = #FIXED_DRIVE : DriveTypeString.s = "Disque dur"
Case #DRIVE_REMOTE : DriveType = #REMOTE_DRIVE : DriveTypeString.s = "Lecteur réseau"
Case #DRIVE_CDROM : DriveType = #CDROM_DRIVE : DriveTypeString.s = "CD-ROM"
Case #DRIVE_RAMDISK : DriveType = #RAMDISK_DRIVE : DriveTypeString.s = "RamDisk"
Case #DRIVE_UNKNOWN : DriveType = #UNKNOWN_DRIVE : DriveTypeString.s = ""
EndSelect

If DriveType & ListDriveType ; on regarde si le type du lecteur correspond à ceux demandés
AddElement(DriveList())
DriveList()\DriveLetter = RemoveString(DriveLetter, "\")
DriveList()\DriveType = DriveType
DriveList()\DriveTypeString = DriveTypeString

If DriveLetter <> "A:\" And DriveLetter <> "B:\"
DriveList()\NameOfVolume = Space(255)
GetVolumeInformation_(@DriveLetter, @DriveList()\NameOfVolume, 255, 0, 0, 0, 0, 0)
DriveList()\NameOfVolume = Trim(DriveList()\NameOfVolume)
Else
DriveList()\NameOfVolume = ""
EndIf

EndIf

Next
EndProcedure




;- Debut du test

GetDrive(#REMOVABLE_DRIVE | #CDROM_DRIVE | #FIXED_DRIVE)

ResetList(DriveList())
While NextElement(DriveList())
Debug DriveList()\DriveLetter + " " + DriveList()\DriveTypeString + " " + DriveList()\NameOfVolume
Wend
; ExecutableFormat=Windows
; CursorPosition=16
; FirstLine=1
; Executable=C:\Program Files\PureBasic\Développements\essai.exe
; EOF

---=_NextPart
--
--
donc du bazar en haut du message, le texte de commentaire et la pièce jointe en texte sans mise en forme du code.
comme tu le vois, c'est pas très pratique.

sinon, si tu pouvais ajouter dans ton soft une ligne pour mettre un titre, ce serait plus simple pour gérer les mails reçu ;)

Publié : dim. 18/avr./2004 19:22
par Chris
@Regis

Tu reçois ça avec quelle version du prog? La première, ou la dernière?.
C'est ça les trucs bizarres dont tu parlais?

Chris :)

Publié : dim. 18/avr./2004 19:44
par Oliv
A mon avis il veut parler des informations MIME

Publié : lun. 19/avr./2004 10:31
par Lukky
Juste une parenthèse, tant que tu mettras pas le source complet tu vas galérer pour le débuggage, faudra pas longtemps avec tous les petits malins ici pour finaliser le truc.

De plus pour ma part je ne l'utiliserais pas sans voir le source. Mon micro actuel est mon PC pro et les données que j'ai dessus sont très confidentielles et je doit protéger la sécurité de mes clients. Je n'utilise pas (à par windows) de produits microsofts pour mes email et pour ce qui touche de trop près internet et pour le reste je suis très prudent, de plus tu peux toujours te retourner en justice contre une société alors qu'un particulier c'est tout de suite sans espoir de récupération de quoi que ce soit en cas de conflit.

Je ne dois pas être le seul a avoir des obligations de ce type sur ce forum. J'ai pas mal de sources, celle qui ne seront pas sur le site seront envoyées par email de façon traditionnelle, ce n'est pas grave en soit.

JL

Publié : lun. 19/avr./2004 12:07
par Le Soldat Inconnu
avec la dernière version ;)
c'est ce que je reçois sur l'addresse de la poste quand je teste. si tu veut le login et le pass de la boite pour tester, demndes en MP :)