Bienvenue! Identification Créer un nouveau profil

Recherche avancée

[BUG] Taille totale des messages incorrecte

avatar
23/05/13 14:08
Concerne :
libMAIL 1.40
Access 2000 et supérieur

À partir de la version 2000, les champs mémo sont stockés au format Unicode (2 octets par caractère), alors que les versions précédentes utilisaient le format ANSI (1 octet par caractère).
En conséquence, la version 1.40 de libMAIL, qui utilise la propriété FieldSize pour obtenir la taille du corps du message, retourne une valeur erronée (le double de ce qu'elle devrait être). Cette valeur peut être lue à l'aide de la fonction SMTPEtatSrv.OctetsTotal.

La conséquence de cette erreur peut se voir sur le formulaire frm_EtatSrv, qui peut être affiché à l'aide de l'instruction
Langage: Visual Basic
SMTPEtatSrv True
dont les barres de progression n'atteindront jamais 100% à la fin de l'envoi.

Ce bug n'a pas d'influence sur l'envoi des messages, qui sont bien transmis sans perte.

Correctif rapide :
Dans le formulaire frm_SMTP, procédure EnvoieTout, remplacez
Langage: Visual Basic
' FieldSize est beaucoup plus rapide que Len() pour obtenir la taille d'un champ Mémo. lLng = lLng + Len(MSGEnTete(rs, ESMTP_MSG, , Now())) + rs!CorpsMsg.FieldSize + 2 ' Compter aussi le vbCrLf final.
par
Langage: Visual Basic
' FieldSize est beaucoup plus rapide que Len() pour obtenir la taille d'un champ Mémo. lLng = lLng + Len(MSGEnTete(rs, ESMTP_MSG, , Now())) + rs!CorpsMsg.FieldSize \ 2 + 2 ' Compter aussi le vbCrLf final.

Ceci fonctionnera correctement si la propriété Compression unicode du champs CorpsMsg de la table BoiteMail est à Faux (ce qui est le cas par défaut).


Un grand merci à Christian pour avoir débusqué ce bug.



Modifié 1 fois. Dernière modification le 23/05/13 14:13 par DenisS.
SujetAuteurEnvoyé le

[BUG] Taille totale des messages incorrecte

DenisS23/05/13 14:08

Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter