2016-02-04 7 views
0

Mon entreprise utilise Mailkit pour un programme client dédié. Malheureusement, le développeur a quitté l'entreprise et aucun code source n'est disponible.Sortie de Mailkit lors de l'envoi de CAPABILITY avec IMAPS pour 1 utilisateur, mais pas pour l'autre

Donc, lors de l'exécution avec l'utilisateur EP le mailkit.exe debug version du programme afin de récupérer des e-mails via IMAPS/port 993, il fois après un certain temps. Heureusement, un fichier de sortie est généré donne les éléments suivants:

Connected to imaps://imaps.company.net:993/ 
S: * OK The Microsoft Exchange IMAP4 service is ready. 
C: A00000000 CAPABILITY 
S: * BYE 
Connection is closed. 13 

Sur le même serveur en utilisant le compte AD il fonctionne tout de suite; Le fichier journal est le suivant:

Connected to imaps://imaps.company.net:993/ 
S: * OK The Microsoft Exchange IMAP4 service is ready. 
C: A00000000 CAPABILITY 
S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN UIDPLUS CHILDREN IDLE NAMESPACE LITERAL+ 
S: A00000000 OK CAPABILITY completed. 
C: A00000001 AUTHENTICATE NTLM 
S: + 
C: TlRMTVNTUBLABLABLABLABLABLABLABLA= 
S: + TlRMTVNTUABLABLABLABLABLABLABLAkCGYaTeJuisCQAAAAAAAAAANYA1gBGAAAABgGxHQAAAA9SAFoALQBTAFUARQBEAAIADgBSAFoALQBTAFUARQBEAAEAHgBSAFoAUwAtAEUAWABQAEMALQBWADAAMQA5ADcAMgAEACIAcgB6AC0AcwB1AGUAZAAuAGIAYQB5AGUAcgBuAC4AZABlAAMAQgBSAFoAUwAtAEUAWABQAEMALQBWADAAMQA5ADcAMgAuAHIAegAtAHMAdQBlAGQALgBiAGEAeQBlAHIAbgAuAGQAZQAFACIAYQBkAC0AcgBvAG8AdAAuAGIAYQB5AGUAcgBuAC4AZABlAAcACAAoo1GGWF/RAQAAAAA= 
C: TlRMTVNTUAADAAAAGAAYAIwAAAAYABgApAAAAAAAAABAAAAATABMAEAAAAAAAAAAjAAAAAAAAAC8AAAAAYIIAGwAZgBzAHQAYQBkAC0AZQBwAHMAdwBlAGIALQBhAHUAcwB0AGEAdQBzAGMAaABAAHMAdABtAGkALgBiAGEAeQBlAHIAbgAuAGQAZQBMgR43Q5lU3gAAAAAAAAAAAAAAAAAAAAAX+a5JGYqTMiuhZBjMz/tOXbxffNW9azQ= 
S: A00000001 OK AUTHENTICATE completed. 
C: A00000002 CAPABILITY 
S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN UIDPLUS CHILDREN IDLE NAMESPACE LITERAL+ 
S: A00000002 OK CAPABILITY completed. 

Entre le client et un serveur Exchange Server 2010 à charge équilibrée/en clusters un pare-feu se trouve.

En utilisant

openssl s_client -connect imaps.company.net:993/ 

et en entrant

A00000000 CAPABILITY 

plus tard donne sur aucune erreur pour les comptes utilisateurs, au lieu du temps après un certain temps avec le message suivant:

* OK The Microsoft Exchange IMAP4 service is ready. 
* BYE Connection is closed. 13 read:errno=0 

Note: Le problème apparaît en envoyant

A00000000 CAPABILITY 

dans les mailkit.exe AVANT authentification a lieu.

Que se passe-t-il ici? Pourquoi travaille-t-il avec l'utilisateur AD et non avec l'utilisateur EP sur le même ordinateur?

+0

Votre serveur Exchange est-il simplement surchargé? Votre pare-feu fait-il tomber des paquets? Pourriez-vous avoir un mauvais concentrateur/commutateur? – jstedfast

+0

Je ne sais pas, je peux vous suivre. Si un utilisateur travaille tous les temps et l'autre jamais - comment peut-il être une surcharge du serveur Exchange, respectivement un mauvais concentrateur/commutateur? Notez que les tests pour les deux utilisateurs ont toujours eu lieu dans la même minute. En regardant une trace Wireshark je ne pouvais pas voir de paquets abandonnés. Respectivement le pare-feu est hors de mon contrôle ... – Joey

+0

Combien de temps s'écoule entre la connexion et l'envoi de la commande 'CAPABILITY'? – jstedfast

Répondre

0

Nous avons connu le même problème. Nous pensons qu'un problème de pare-feu en est la cause, mais cela n'est pas encore confirmé.

Ce qui a fonctionné pour nous était une mise à niveau vers la dernière version (1.10.0) de MailKit et utiliser la surcharge de connexion

ImapClient.Connect(servername, port, SecureSocketOptions) 

utilisant SecureSocketOptions.None pour contourner la demande STARTTLS.