OVH Cloud OVH Cloud

Mail et VB

3 réponses
Avatar
Jacques
Bonjour,

Dans OutlookExpress lorsque l'on clique avec le bouton droit de la souris
sur un message, nous pouvons voir les propriétés. Ces propriétés nous
offrent deux onglets : Général et Détails. Si on choisit Détails, nous
pouvons alors afficher la "'Source du message".

Comment afficher cette source en utilisant le code vb6

Merci de vos réponses

3 réponses

Avatar
Jean-Marc
"Jacques" a écrit dans le message de
news:%23xnh%
Bonjour,

Dans OutlookExpress lorsque l'on clique avec le bouton droit de la souris
sur un message, nous pouvons voir les propriétés. Ces propriétés nous
offrent deux onglets : Général et Détails. Si on choisit Détails, nous
pouvons alors afficher la "'Source du message".

Comment afficher cette source en utilisant le code vb6



Hello,

le source comme tu dis, c'est tout simplement le message tel qu'il est
transmis
au logiciel de messagerie, qui le lit en utilisant le protocole POP3.

Pour lire son mail en VB, rien de plus simple (surtout si ce qui t'intérèsse
c'est précisément le "source".

1/ Créer un socket (Winsock) appelons le sckPop3
2/ Lui mettre les bonnes propriétés
remotehost=ton serveur POP
remoteport0
2'/ se connecter
3/ passer au serveur les commandes attendues et
définies dans le protocole POP3, à savoir:
USER <ton login de connection><CRLF>
PASS <ton password de connection><CRLF>
4/ récupérer la liste des messages avec LIST<CRLF>
5/ récupérer les messages avec RETR <num mess><CRLF>
6/ le tour est joué.

Lire bien sur la RFC qui explique tout ça:
http://www.faqs.org/rfcs/rfc1939.html


Je poste ici un mini exemple pour illustrer.
Il faut:
- un composant winsock (winsock1)
- 3 textBox (text1, text2, text3)
- un bouton de commande COmmand1

Text3 sera défini avec multiline=true et
sera un grand controle sur la feuille
Text1 sert pour mettre le nom du serveur pop
Text2 sert à mettre le mot de passe
Command1 fait tout le reste;

Il n'y a que 2 procédures, tout est automatique.
Penser à changer dans le code l'initialisation du
nom du serveur POP à utiliser:

' changer ça bien sur
Winsock1.RemoteHost = "pop.tiscali.be"

Option Explicit
Dim state As Integer
Dim GLOB_TXT_RCV As String

Private Sub Command1_Click()
Dim i As Integer
Dim sdata() As String
Dim nm As Integer

Text3.Text = ""
' serveur POP à interroger
' changer ça bien sur
Winsock1.RemoteHost = "pop.tiscali.be"
' port 110
Winsock1.RemotePort = 110
' connection
Winsock1.Connect
state = 0
' on attend la réponse du serveur
While state <> 1
DoEvents
Wend
' on envoie la commande USER suivi du login de connection
Winsock1.SendData "USER " & Text1.Text & vbCrLf
state = 2
While state <> 3
DoEvents
Wend
' on envoie la commande PASS suivi du mot de pass
Winsock1.SendData "PASS " & Text2.Text & vbCrLf
state = 4
While state <> 5
DoEvents
Wend
' nous voici connecté
' voyons voir si il y a au moins un message
GLOB_TXT_RCV = ""
Winsock1.SendData "LIST" & vbCrLf
While GLOB_TXT_RCV = ""
DoEvents
Wend
' Ok voyons la réponse
sdata = Split(GLOB_TXT_RCV, vbCrLf)
For i = LBound(sdata) To UBound(sdata)
If Mid$(sdata(i), 1, 1) = "." Then
' fin des messages, pas intéressant
ElseIf Mid$(sdata(i), 1, 3) = "+OK" Then
' debut de la réponse, pas intéressant
Else
' nous y voila, il y a des messages
' récupérons le numéro
If sdata(i) <> "" Then
nm = Trim$(Mid$(sdata(i), 1, InStr(sdata(i), " ") - 1))
' et demandons ce message au serveur
state = 6
Winsock1.SendData "RETR " & nm & vbCrLf
While state <> 7
DoEvents
Wend
MsgBox "message reçu et affiché"
' le message est dispo ici dans GLOB_TXT_RCV
' pour traitement si nécessaire
End If
End If
Next i
' deconnectons nous
Winsock1.SendData "QUIT" & vbCrLf
End Sub


Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim s As String

Winsock1.GetData s
Text3.Text = Text3.Text & s
GLOB_TXT_RCV = s
If Len(s) = bytesTotal Then
Select Case state
Case 0
If Mid$(s, 1, 3) = "+OK" Then
state = 1
End If
Case 2
If Mid$(s, 1, 3) = "+OK" Then
state = 3
End If
Case 4
If Mid$(s, 1, 3) = "+OK" Then
state = 5
End If
Case 6
state = 7
End Select
End If
End Sub

Testé, fonctionne sans problèmes.

Ce code est purement illustratif de la méthode, hein!
Il n'est pas fait dans les règles de l'art, c'est juste
pour s'amuser avec le protocole POP3.


--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
Jean-Marc
oups!
text1 sert à mettre le LOGIN, pas le nom du serveur

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
Gloops
Bonjour,

A supposer qu'effectivement ce que tu veux faire n'est pas lire dans les
fichiers de Outlook Express mais bien recevoir ton mail du serveur,
voilà une page qui pourrait t'intéresser :

http://www.salemioche.com/pop/

Il y a une autre page sur le même site pour le protocole IMAP.


















Jacques a écrit, le 19/03/2005 23:57 :
Bonjour,

Dans OutlookExpress lorsque l'on clique avec le bouton droit de la souris
sur un message, nous pouvons voir les propriétés. Ces propriétés nous
offrent deux onglets : Général et Détails. Si on choisit Détails, nous
pouvons alors afficher la "'Source du message".

Comment afficher cette source en utilisant le code vb6

Merci de vos réponses