[R] _INetSmtpMail : erreur de date

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

[R] _INetSmtpMail : erreur de date

#1

Message par aulus »

Bonjour,

Les destinataires de mails expédiés par mes soins par la fonction _INetSmtpMail d'AutoIt me signalent que ces mails affichent des dates erronées à la réception. Année et jour sont bons, mais le mois ne correspond pas. Ainsi 30/06/2014 devient 30/03/2014

Quelle pourrait être l'origine d'un tel dysfonctionnement ? Il ne s'agit pas du serveur car mes envois par la voie normale (via mon logiciel de messagerie) sont correctement datés.

Je vous remercie de votre avis.
Modifié en dernier par aulus le mer. 02 juil. 2014 15:45, modifié 3 fois.
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

Re: [..] _INetSmtpMail : erreur de date

#2

Message par fred39 »

Bonjour,
à tout hasard
peut être une piste:
http://www.autoitscript.com/forum/topic ... d-rfc0822/
dans inet.au3, je trouve

Code : Tout sélectionner

"Date: " & _DateDayOfWeek(@WDAY, 1) & ", " & @MDAY & " " & _DateToMonth(@MON, 1) & " " & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC & $bias & @CRLF & _
à la ligne 145 au lieu de 175.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] _INetSmtpMail : erreur de date

#3

Message par aulus »

Merci pour votre aide.
Je vais multiplier mes test d'envois en masse en tenant compte de votre suggestion.
A suivre...
Merci encore.
Modifié en dernier par aulus le mar. 01 juil. 2014 20:05, modifié 1 fois.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#4

Message par aulus »

Les tests suivants n'ont malheureusement pas été concluants.
La ligne 145 du fichier INet.au3 :

Code : Tout sélectionner

"Date: " & _DateDayOfWeek(@WDAY, 1) & ", " & @MDAY & " " & _DateToMonth(@MON, 1) & " " & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC & $bias & @CRLF & _
 
modifiée en :

Code : Tout sélectionner

"Date: " & _DateDayOfWeek(@WDAY, 1) & ", " & @MDAY & " " & stringleft(_DateToMonth(@MON, 1),3)  & " 20" & stringright(@YEAR, 2) & " " & @HOUR & ":" & @MIN & ":" & @SEC & $bias & @CRLF & _
 
... ne résout pas le problème.

La date d'aujourd'hui (01 07 2014) s'affiche 01 03 2014 dans le logiciel de messagerie du destinataire.

J'ai tenté de forcer le mois de juillet des deux manières suivantes :

Code : Tout sélectionner

Local [color=#FF0000]$Mois = 07[/color]
"Date: " & _DateDayOfWeek(@WDAY, 1) & ", " & @MDAY & " " &[color=#FF0000] $Mois[/color] & " " & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC & $bias & @CRLF & _
 
... ainsi que :

Code : Tout sélectionner

Local [color=#FF0000]$Mois =@MON[/color]
"Date: " & _DateDayOfWeek(@WDAY, 1) & ", " & @MDAY & " " &[color=#FF0000] $Mois[/color] & " " & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC & $bias & @CRLF & _
 
... rien n'y fait. Mais pourquoi donc O3 s'affiche-t-il à la place de O7 ?
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

Re: [..] _INetSmtpMail : erreur de date

#5

Message par fred39 »

Bonsoir,
je me demande si on ne fait pas fausse piste:
Il semble que la date des messages reçu est celle de l'entête du mail champ X-ME-Date: ou Date qui est définie par le serveur SMTP.
Il faudrait récupérer un mail et regarder le code source
Si le serveur SMTP est un serveur à vous, je pense que vous avez déjà contrôlé sa date.
J'ai déjà vu sur des serveurs ayant un uptime supérieur à un mois, des pb de date.
http://autoitscript.fr/forum/viewtopic.php?f=3&t=1107

Bonne soirée
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] _INetSmtpMail : erreur de date

#6

Message par aulus »

Bonjour,

J'ai comparé le code source d'un courriel envoyé par _INetSmtpMail (1) avec le code source d'un courriel envoyé par un logiciel de messagerie. (2)
Je note que tout au long du code (2) la référence à la date est toujours : Wed, 02 Jul 2014 09:26:22 +0200

Code : Tout sélectionner

Received: from ...
     Wed, 02 Jul 2014 08:49:53 +0200
...
Date: Wed, 2 [color=#FF0000]Jul[/color] 2014 08:49:53 +0200 (CEST)
 
Tandis que le code (1) affiche :

Code : Tout sélectionner

Received: from ...
Wed,  2 Jul 2014 09:26:21 +0200 (CEST)
...
Date: [color=#FF0000]Mer[/color], 02 [color=#FF0000]Jull[/color] 2014 09:26:21 (+0100)
 
Le problème proviendrait-il de cette francisation de la date ? Cette francisation est-elle opérée par la fonction _INetSmtpMail ?
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] _INetSmtpMail : erreur de date

#7

Message par orax »

Je ne sais pas d'où sortent Mer et Jull mais ce n'est pas bon. Ça doit être Wed et Jul.

Depuis la RFC :

Code : Tout sélectionner

   day-name        =   "Mon" / "Tue" / "Wed" / "Thu" /
                       "Fri" / "Sat" / "Sun"

Code : Tout sélectionner

   month           =   "Jan" / "Feb" / "Mar" / "Apr" /
                       "May" / "Jun" / "Jul" / "Aug" /
                       "Sep" / "Oct" / "Nov" / "Dec"
En tout cas, cette date est juste la date de fin de création du message. Et elle peut être totalement erronée si l'utilisateur qui envoie le message n'a pas son horloge à la bonne heure/date.
C'est pourquoi je préfère trier mes messages reçus par date de réception au lieu de leur date de création.
http://abcdrfc.free.fr/rfc-vf/pdf/rfc5322.pdf a écrit :3.6.1
La date de création spécifie la date et l'heure à laquelle le créateur du message indique que le message a été terminé et est
prêt à passer dans le système de livraison des messages. Par exemple, cela peut être l'heure à laquelle l'utilisateur a appuyé
sur le bouton "envoi" ou "soumettre" dans un programme d’application. Dans tous les cas, il n'est précisément pas envisagé
de lui faire porter l’heure à laquelle le message a réellement été transporté, mais plutôt l'heure à laquelle l'homme ou tout
autre créateur du message l'a mis en forme finale, prêt pour le transport. (Par exemple, un utilisateur d’ordinateur portable
non connecté à un réseau peut mettre le message en file d'attente en vue de sa livraison. La date de création est destinée à
contenir la date et l'heure à laquelle le message a été mis en file d'attente, pas l'heure à laquelle l'utilisateur s'est connecté au
réseau pour l’envoi du message
.)
https://tools.ietf.org/html/rfc5322#section-3.3
http://abcdrfc.free.fr/rfc-vf/pdf/rfc5322.pdf
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] _INetSmtpMail : erreur de date

#8

Message par aulus »

orax a écrit :Je ne sais pas d'où sortent Mer et Jull...
Moi non plus !
Après lecture de votre message, j'ai purement et simplement supprimé la ligne 145 du fichier Inet.au3.
Dans mes premiers tests, les Mer et Jull ont disparu pour laisser la place aux Wed et Jul , et les dates affichées dans les clients de messagerie des destinataires sont correctes.
Je ne comprends pas tout, mais la correction a l'air efficace.
Je mets le fil en résolu, en espérant ne pas revenir aux [..] dans les heures ou jours qui viennent !

Merci Orax de votre éclairage...
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#9

Message par jchd »

Quelle version d'AutoIt emploies-tu ? Une version d'origine (US donc) ou une version locale ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#10

Message par aulus »

Bonjour jchd,

J'utilise la version v3.3.10.2
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#11

Message par orax »

Mais est-ce que c'est celle du pack FR ? Puisque je viens d'essayer avec un bout de code de Inet.au3 et je n'ai pas de problème. J'ai AutoIt 3.3.12.0 (version US officielle).
► Afficher le texte

Code : Tout sélectionner

$aSend[4] retourne :
    From:Tartempion<a@a.a>
    To:<a@a.a>
    Subject:Sujet
    Mime-Version: 1.0
    Date: Wed, 02 Jul 2014 18:36:19 (+0100)
    Content-Type: text/plain; charset=US-ASCII
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#12

Message par aulus »

Oui, c'est le pack proposé en téléchargement sur ce forum.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#13

Message par Tlem »

@jchd et orax
Pour information, dans la dernière version du Pack AutoIt.fr (2.3.5) seul le fichier \Include\GuiMonthCal.au3 est modifié pour traduire localement le nom des jours et des mois.

Effectivement dans la 2.3.4 le fichier \Include\Date.au3 était lui aussi modifié. Je conseille donc à aulus d'installer la 2.3.5 pour voir si cela corrige son problème. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#14

Message par aulus »

Merci Tlem,

La version proposée à l'adresse http://www.autoitscript.fr/forum/viewto ... =22&t=2573 est-elle celle que vous conseillez ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#15

Message par Tlem »

Oui

Envoyé depuis mon appareil mobile.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#16

Message par aulus »

Bonjour,
J'ai installé le pack français.
Pour info :
J'ai eu cet avertissement à l'installation de Scite4AutoIt3 sous Windows 7 (64 bits) :
This installer requires the Autoit3 production release to be installed first.
Stopping installation
Accompagné de l'avertissement Windows :
Le programme ne s'est pas installé correctement... etc.
Après essai, il semble pourtant qu'il se soit bien installé !

Concernant le problème de date, celle-ci apparaît bien en anglais et est correcte à la réception des courriels. Le problème est peut-être bien résolu (je croise les doigts !)
J'ai testé la réception sous deux clients de messagerie. Le premier indique la bonne heure de l'envoi. Mais la seconde, Thunderbird, affiche une heure de plus : est-ce dû à un mauvais réglage de Thunderbird ? Et si oui, quelqu'un saurait-il où se règlent les problèmes de fuseau horaire dans ce logiciel ?

Vous remerciant pour tout.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#17

Message par orax »

Édité : ceci est une date que j'avais générée avec l'UDF (Inet.au3 je crois) : Date: Wed, 02 Jul 2014 18:36:19 (+0100).
Sauf erreur de ma part, il n'y a pas le bon décalage horaire. Ça ne m'avait pas sauté aux yeux… :shock: Je suppose que ça devrait être +0200 (puisque je suis en heure d'été).

:idea: Un truc à essayer :
Ligne :

Code : Tout sélectionner

Local $iBias = -$aResult[1] / 60
à changer en :

Code : Tout sélectionner

Local $iBias = -$aResult[1] / 60 - $aResult[7] / 60
Et il y a aussi ces parenthèses autour du décalage horaire qui me semblent bizarres.

- - - - - -
aulus a écrit :J'ai eu cet avertissement à l'installation de Scite4AutoIt3 sous Windows 7 (64 bits) :
This installer requires the Autoit3 production release to be installed first.
Stopping installation
Après essai, il semble pourtant qu'il se soit bien installé !
Tant mieux si c'est le cas mais c'est quand même étrange. À l'installation du pack, celui-ci propose de générer un fichier LOG. Ça pourrait peut-être apporter plus d'information sur l'erreur lors de l'installation.

Pour Thunderbird, je connais peu mais j'ai pu tester sur un poste où il est installé. Dans les colonnes Sujet, Expéditeur, … on peut ajouter deux dates : Date et Reçu. Enfin bon, ça me fait une belle jambe puisque je ne vois pas la différence entre les deux ! Les deux m'affichent la date de création du message, soit « Date: » dans l'en-tête.

Exemple, courriel écrit à 16h50 et mis en attente pour être envoyé à 17h20 ; horloge de l'ordi sur le fuseau Paris, heure d'été :

Code : Tout sélectionner

Received: from 127.0.0.1 ([1.1.1.1])
    by xxxxxxxx with ME
    id xxxxxxxx; Sat, 05 Jul 2014 17:20:00 +0200
Date: Sat, 05 Jul 2014 16:50:00 +0200
Thunderbird m'affiche 16:50:00 dans les colonnes Date et Reçu.
Ça serait bien d'avoir les en-têtes d'un message envoyé via le script (Date: surtout). Ou récupère les données que le script souhaite envoyer.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#18

Message par aulus »

Merci pour l'intérêt que vous portez à mes questions.
orax a écrit : Ça serait bien d'avoir les en-têtes d'un message envoyé via le script (Date: surtout). Ou récupère les données que le script souhaite envoyer.
Voici le source du courriel reçu via Thunderbird. Ce courriel a été envoyé à 7 h 45. Thunderbird affiche 8 h 45.
► Afficher le texte
orax a écrit : À l'installation du pack, celui-ci propose de générer un fichier LOG. Ça pourrait peut-être apporter plus d'information sur l'erreur lors de l'installation.
Dans quel dossier se trouverait ce fichier LOG ? Je l'ai recherché sans succès.
Je m'absente ce week-end : je ne pourrai avoir accès à internet que demain soir lundi pour répondre à votre prochain message éventuel.
Merci encore et bon week-end à vous.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#19

Message par orax »

aulus a écrit :Dans quel dossier se trouverait ce fichier LOG ? Je l'ai recherché sans succès.
Lors de l'installation du pack, il y a une case "Fichier .LOG" à cocher. Et il me pond un fichier "Log Pack_AutoIt.txt" sur le bureau.


Pour le problème de date.
Dans la fonction _INetSmtpMail de l'UDF Inet.au3 il faut remplacer les lignes suivantes :

Code : Tout sélectionner

Local $iBias = -$aResult[1] / 60
par
Local $iBias = -$aResult[1] / 60 - $aResult[7] / 60

et
$iBias = StringFormat(" (%+.2d%.2d)", $iBiasH, $iBiasM)
par
$iBias = StringFormat(" %+.2d%.2d", $iBiasH, $iBiasM)
Ce qui donne :
avant : Date: Mon, 07 Jul 2014 02:31:29 (+0100)
après : Date: Mon, 07 Jul 2014 02:31:29 +0200

Le décalage d'une heure de l'heure d'été n'était pas ajoutée.
De plus, la zone (c.a.d. +0200) ne doit pas être entre parenthèses. Par contre il est valide d'ajouter une sorte de commentaire, entre parenthèses, après la zone.
Comme ici : Sun, 6 Jul 2014 07:45:52 +0200 (CEST)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] _INetSmtpMail : erreur de date

#20

Message par jchd »

Pour info (CEST) n'est pas un commentaire arbitraire mais le nom officiel de la zone de temps, ici "Central East Standard Time".
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre