INTERNALDATE one hour in future for sent message

Jim Brett jimbrett099 at comcast.net
Wed Jun 28 10:21:02 EDT 2006


INTERNALDATE (hence received date?) one hour in future for sent 
message.  I realize that a received date on a message in sent folder 
doesn't really have meaning but, if a user moves from sent to inbox (or 
trash), then clients (including outlook and outlook express) sort by 
received date which is consistently one hour in the future which bothers 
our QA department.

Version: Cyrus IMAP4 v2.2.12 [ESMTP Postfix (2.2.1) "Brand X"]

I've searched cyrus wiki plus web but haven't found an answer.  From 
what I can tell, setting of the received date for sent message is in the 
sphere of influence of the IMAP server. 

Steps to recreate: user sends mail via our telephone user-interface to 
themself (resulting in one message each in sent and inbox folder).  
telnet to solaris box and select/fetch info.  Sent at 11:27 but 
INTERNALDATE for sent message is 12:27 (one hour in future). Values for 
message in inbox both 11:27.

// Is there some timezone setting/issue that we're missing.  This seems 
most likely.
Note that INTERNALDATE for sent message ends with "-400" while date in 
envelope info ends with "0400 (EDT)".  Not sure if doesn't matter, if 
there's a cyrus internal timezone setting we need to set/change or 
whether, if machine changed from EDT to EST, INTERNALDATE would be 
correct for sent mail i.e. would work 6 months per year.   <- Update: I 
did try that and it works correctly so there is a timezone issue somewhere.

// We're not sure if it's us or if something else isn't involved ...

Though isn't Javamail still responsible for the APPEND to the mail 
folder? If so, it could still be to blame.

// Data. Message in question sent at 11:27:45

bash-2.03# telnet localhost 143
>
>  Trying 127.0.0.1...
>
>  Connected to localhost.
>
>  Escape character is '^]'.
>
>  * OK computername.com Cyrus IMAP4 v2.2.12 server ready
>
>  // login as user
>
>  1 login 5551111 555
>
>  1 OK User logged in
>
>  // select sent folder
>
>  2 select inbox.sent-mail
>
>  * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
>
>  * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]
>
>  * 1 EXISTS
>
>  * 0 RECENT
>
>  * OK [UIDVALIDITY 1134760645]
>
>  * OK [UIDNEXT 155]
>
>  2 OK [READ-WRITE] Completed
>
>  // fetch info on message sent at roughly 11:27
>
>  3 fetch 1:1 (ENVELOPE INTERNALDATE RFC822.size)
>
>  * 1 FETCH (INTERNALDATE "22-Jun-2006 12:27:45 -0400" RFC822.SIZE 31441
>  ENVELOPE     ("Thu, 22 Jun 2006 11:27:45 -0400 (EDT)" "Voicemail"
>  (("Jay Bee" NIL "339111    1" "computername.com")) (("Jay Bee"
>  NIL "5551111" "computername.com")) (("    Jay Bee" NIL "5551111"
>  "computername.com")) (("Jay Bee" NIL "5551111" "
>  computername.com")) NIL NIL NIL
>  "<15292443.1150990065374.JavaMail.jb at jb    -dt>"))
>
>  3 OK Completed (0.000 sec)
>
>  // select inbox
>
>  4 select inbox
>
>  * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
>
>  * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]
>
>  * 1 EXISTS
>
>  * 0 RECENT
>
>  * OK [UNSEEN 1]
>
>  * OK [UIDVALIDITY 1134760644]
>
>  * OK [UIDNEXT 492]
>
>  4 OK [READ-WRITE] Completed
>
>  // fetch info on received message sent at roughly 11:27
>
>  5 fetch 1:1 (ENVELOPE INTERNALDATE RFC822.size)
>
>  * 1 FETCH (INTERNALDATE "22-Jun-2006 11:27:45 -0400" RFC822.SIZE 31825
>  ENVELOPE     ("Thu, 22 Jun 2006 11:27:45 -0400 (EDT)" "Voicemail"
>  (("Jay Bee" NIL "339111    1" "computername.com")) (("Jay Bee"
>  NIL "5551111" "computername.com")) (("    Jay Bee" NIL "5551111"
>  "computername.com")) (("Jay Bee" NIL "5551111" "
>  computername.com")) NIL NIL NIL
>  "<15292443.1150990065374.JavaMail.jb at jb    -dt>"))
>
>  5 OK Completed (0.000 sec)
>
>  // That's it ...
>
>  6 logout
>
>  * BYE LOGOUT received
>
>  6 OK Completed

 // - - -

// contents of cyrus.conf

 bash-2.03# cat ./usr/local/imapldap/util/cyrus.conf
 START {
  # do not delete these entries!
  mboxlist      cmd="ctl_mboxlist -r"
  deliver       cmd="ctl_deliver -r"
   # this is only necessary if using idled for IMAP IDLE
  #idled                cmd="idled"
}

 # UNIX sockets start with a slash and are put into /var/imap/socket
SERVICES {
  # add or remove based on preferences
  imap          cmd="imapd" listen="imap" prefork=0
#  imaps         cmd="imapd -s" listen="imaps" prefork=0
#  pop3          cmd="pop3d" listen="pop3" prefork=0
#  pop3s         cmd="pop3d -s" listen="pop3s" prefork=0
#  sieve         cmd="timsieved" listen="sieve" prefork=0
  # at least one LMTP is required for delivery
  lmtpunix      cmd="lmtpd" listen="/var/spool/postfix/public/lmtp" 
prefork=1
}

 EVENTS {
  # this is required
  checkpoint    cmd="ctl_mboxlist -c" period=30
   # this is only necessary if using duplicate delivery suppression
  delprune      cmd="ctl_deliver -E 3" period=1440
   # Uncomment the next entry, if you want to automatically remove
  # old messages of EVERY user.
  # This example calls ipurge every 60 minutes and ipurge will delete
  # ALL messages older then 30 days.
 # enter 'man 8 ipurge' for more details
  # cleanup      cmd="ipurge -d 30" period=60
}

 // - - -

// contents of imapd.conf

 bash-2.03# cat ./usr/local/imapldap/util/imapd.conf
admins: cyrus
allowanonymouslogin: no
autocreatequota: 10240
reject8bit: no
quotawarn: 90
timeout: 30
poptimeout: 10
hashimapspool: yes
sieveuserhomedir: no
sievedir: /store/spool/sieve
configdirectory: /store/imap
partition-default: /store/spool/imap
sasl_pwcheck_method: saslauthd
mboxlist_db: skiplist
duplicate_db: skiplist
subscription_db: flat
seenstate_db: skiplist
fulldirhash: yes
lmtpsocket: /var/spool/postfix/public/lmtp
#
#tls_cert_file: /usr/ssl/certs/cert.pem
#tls_key_file: /usr/ssl/certs/skey.pem
#tls_ca_file: /usr/ssl/CA/usedCA.pem
#tls_ca_path: /usr/ssl/CA
duplicatesuppression: yes




More information about the Info-cyrus mailing list