Bonjour à tous.

Je dois me connecter à une boîte Email avec MAPI pour lister les emails reçus. J'ai utilisé le composant Indy IdIMAP4 et je me connecte au compte avec la fonction suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
Function TForm1.ListerEmails_MAPI : AnsiString;
Var
   i: Integer;
   IdMessageCollection : TIdMessageCollection;
 
Begin
     Result:='';
     ListBox1.Clear;
     Try
        IdMessageCollection:=TIdMessageCollection.Create(TIdMessageItem);
        IdIMAP41.Port:=StrToInt(Edit10.Text);
        IdIMAP41.Host:=***;
        IdIMAP41.Username:=***;
        IdIMAP41.Password:=***;
        IdIMAP41.Connect;
        IdIMAP41.SelectMailBox('INBOX');
        IdIMAP41.RetrieveAllHeaders(IdMessageCollection);
        For I:=0 To IdMessageCollection.Count-1 Do
        ListBox1.Items.Add(IdMessageCollection.Messages[i].Subject);
 
        Result:='OK';
     Except
           On e: exception Do Result:=e.Message;
     End;
     IdIMAP41.Disconnect;
End;
Le code fonctionne très bien lorsque je suis sur mon poste mais dès que je me connecte depuis un PC qui ne se trouve pas sur le même réseau que moi (Mais qui est quand même autorisé à utiliser MAPI, l'envoi de message fonctionne), ça ne fonctionne plus, la procédure me renvoi un socket error 10054 (connection reset by peer).

Je ne comprends pas bien pourquoi ça fonctionne chez moi et pas à l'extérieur de mon réseau. Est-ce que quelqu'un a une idée, est-ce qu'il y a un autre moyen de se connecter à un compte avec MAPI pour lire les emails?

Il se trouve que je rencontre le même problème avec un accès SMTP sur le compte (Via le composant IdSMPT) Sur mon poste, tout fonctionne parfaitement, et à l'extérieur du réseau, impossible de se connecter au serveur.

Merci d'avance