sogo/UI/MailerUI
Ludovic Marcotte 84b7582e03 See ChangeLog
Monotone-Parent: 15a323395e06e9dba494ab7c7ad2871d2e95bdd4
Monotone-Revision: 048651c03289ee8aea9a9d3d3088a91e534dbe5b

Monotone-Author: ludovic@Sophos.ca
Monotone-Date: 2009-12-22T22:45:37
Monotone-Branch: ca.inverse.sogo
2009-12-22 22:45:37 +00:00
..
BrazilianPortuguese.lproj Mantis 2168: Mail - Affichage des messages 'non-existants' sur le serveur 2009-08-19 20:32:58 +00:00
Czech.lproj See ChangeLog 2009-10-24 18:59:42 +00:00
Dutch.lproj Mantis 2168: Mail - Affichage des messages 'non-existants' sur le serveur 2009-08-19 20:32:58 +00:00
English.lproj Mantis 2168: Mail - Affichage des messages 'non-existants' sur le serveur 2009-08-19 20:32:58 +00:00
French.lproj Mantis 2168: Mail - Affichage des messages 'non-existants' sur le serveur 2009-08-19 20:32:58 +00:00
German.lproj Mantis 2168: Mail - Affichage des messages 'non-existants' sur le serveur 2009-08-19 20:32:58 +00:00
Hungarian.lproj Added Swedish translation. 2009-11-18 22:54:12 +00:00
Italian.lproj Mantis 2168: Mail - Affichage des messages 'non-existants' sur le serveur 2009-08-19 20:32:58 +00:00
Russian.lproj Monotone-Parent: fe38ac647d2809a6ee40496fdbb3afc364fbbe84 2009-09-01 14:05:41 +00:00
Spanish.lproj Mantis 2168: Mail - Affichage des messages 'non-existants' sur le serveur 2009-08-19 20:32:58 +00:00
Swedish.lproj Updated Swedish translation. 2009-11-20 14:59:16 +00:00
Toolbars See ChangeLog 2008-09-28 14:02:40 +00:00
Welsh.lproj Mantis 2168: Mail - Affichage des messages 'non-existants' sur le serveur 2009-08-19 20:32:58 +00:00
COPYING see ChangeLog 2006-06-15 19:34:10 +00:00
GNUmakefile Added Swedish translation. 2009-11-18 22:54:12 +00:00
GNUmakefile.postamble see ChangeLog 2006-06-15 19:34:10 +00:00
GNUmakefile.preamble see ChangeLog 2006-06-15 19:34:10 +00:00
MailerUIProduct.m Monotone-Parent: 8713b03b75cde71f5a7dbc54ba1bf52054a6fe03 2007-05-23 18:33:24 +00:00
README See ChangeLog 2009-10-09 21:54:07 +00:00
UIxEnvelopeAddressFormatter.m Monotone-Parent: b12641f92f89dbd4afe141575a8f444aee2c63de 2007-07-27 17:34:32 +00:00
UIxFilterList.m Monotone-Parent: b12641f92f89dbd4afe141575a8f444aee2c63de 2007-07-27 17:34:32 +00:00
UIxMailAccountActions.h Added the possibility of retreiving the number of unseen 2008-10-03 13:54:24 +00:00
UIxMailAccountActions.m Monotone-Parent: 2fdf0ead0781ef2362dd389811d5db44ca4cc84a 2009-11-29 04:19:32 +00:00
UIxMailActions.h Monotone-Parent: c33cdda9e79ffbb64ec7e5ffcb898838a13ac5a7 2008-09-27 01:13:41 +00:00
UIxMailActions.m Monotone-Parent: 87900b7c90887e5048e78bcaa1e722ea0e1ebfe5 2009-08-19 19:47:31 +00:00
UIxMailEditor.m Monotone-Parent: 2fdf0ead0781ef2362dd389811d5db44ca4cc84a 2009-11-29 04:19:32 +00:00
UIxMailFilterPanel.m added warnings 2009-10-10 18:27:21 +00:00
UIxMailFolderActions.h Monotone-Parent: b68886fef709d3931ecfc6a232969b39ca2576c0 2009-06-01 17:52:24 +00:00
UIxMailFolderActions.m See ChangeLog 2009-12-22 22:45:37 +00:00
UIxMailFormatter.h Monotone-Parent: 025330d36e1af8f073a0b0a02b64a65e36da2ffb 2007-11-05 16:37:17 +00:00
UIxMailFormatter.m Monotone-Parent: 783dceba01b81a0032283f71411ea2b5a4ec5a92 2007-07-27 17:32:21 +00:00
UIxMailListView.h Monotone-Parent: 2fdf0ead0781ef2362dd389811d5db44ca4cc84a 2009-11-29 04:19:32 +00:00
UIxMailListView.m Monotone-Parent: 2fdf0ead0781ef2362dd389811d5db44ca4cc84a 2009-11-29 04:19:32 +00:00
UIxMailMainFrame.h Monotone-Parent: 2fdf0ead0781ef2362dd389811d5db44ca4cc84a 2009-11-29 04:19:32 +00:00
UIxMailMainFrame.m Monotone-Parent: 2fdf0ead0781ef2362dd389811d5db44ca4cc84a 2009-11-29 04:19:32 +00:00
UIxMailMoveToPopUp.m See ChangeLog 2009-04-01 13:49:24 +00:00
UIxMailPopupView.m Monotone-Parent: c33cdda9e79ffbb64ec7e5ffcb898838a13ac5a7 2008-09-27 01:13:41 +00:00
UIxMailSourceView.h Monotone-Parent: c33cdda9e79ffbb64ec7e5ffcb898838a13ac5a7 2008-09-27 01:13:41 +00:00
UIxMailSourceView.m Monotone-Parent: c33cdda9e79ffbb64ec7e5ffcb898838a13ac5a7 2008-09-27 01:13:41 +00:00
UIxMailToSelection.m Monotone-Parent: 1ade254d62fcb6133186bc9896363a6fa7dc5f90 2008-09-11 21:59:31 +00:00
UIxMailUserRightsEditor.h Monotone-Parent: c33cdda9e79ffbb64ec7e5ffcb898838a13ac5a7 2008-09-27 01:13:41 +00:00
UIxMailUserRightsEditor.m Monotone-Parent: 2fdf0ead0781ef2362dd389811d5db44ca4cc84a 2009-11-29 04:19:32 +00:00
UIxMailView.m Monotone-Parent: 2fdf0ead0781ef2362dd389811d5db44ca4cc84a 2009-11-29 04:19:32 +00:00
UIxMailWindowCloser.m Monotone-Parent: c5cc88dd452d75edebb6730bdb60d21a0facec48 2007-07-27 17:30:37 +00:00
Version see ChangeLog 2006-06-15 19:34:10 +00:00
WOContext+UIxMailer.h Monotone-Parent: 025330d36e1af8f073a0b0a02b64a65e36da2ffb 2007-11-05 16:37:17 +00:00
WOContext+UIxMailer.m Monotone-Parent: 025330d36e1af8f073a0b0a02b64a65e36da2ffb 2007-11-05 16:37:17 +00:00
bundle-info.plist see ChangeLog 2006-06-15 19:34:10 +00:00
product.plist See ChangeLog 2009-10-09 21:54:07 +00:00

README

SOGO Mailer UI
==============

- own (Thunderbird styled) frame
- component for tree

TODO
====
- a lot ;->
- SOPE: does not recognize <input type="button"> !

Components
==========
UIxMailAccountView.wox
UIxMailAccountsView.wox
UIxMailEditor.wox
UIxMailToSelection.wox
UIxMailListView.wox
UIxMailMainFrame.wox
UIxMailTree.wox
UIxMailView.wox

Class Hierarchy
===============

[NSObject]
  MailerUIProduct
  [WOComponent]
    [SoComponent]
      <UIxComponent>
        UIxFilterList
        UIxMailAccountView
        UIxMailAccountsView
        UIxMailAddressbook
        UIxMailEditor
        (Scheduler_Privates)
        UIxMailListView
        UIxMailMainFrame
        UIxMailToSelection
        UIxMailToolbar
        UIxMailTree
        UIxMailView
      UIxMailSortableTableHeader
    UIxMailEditorAttach.m
    UIxMailFilterPanel
    UIxMailMoveToPopUp
    UIxMailWindowCloser
  [WODirectAction]
    UIxMailEditorAction
      UIxMailForwardAction
      UIxMailReplyAction
  [NSFormatter]
    UIxMailFormatter
      UIxMailDateFormatter
      UIxSubjectFormatter
      UIxEnvelopeAddressFormatter
  UIxMailTreeBlock
  [WOContext]
    (UIxMailer)

Defaults
========

SOGoShowInternetMarker - bool
- show a marker in the editor that the request is from the outside

SOGoInternetDetectQualifier - string
- an EOQualifier to detect whether a set of HTTP headers is from the outside,
  eg: "NOT (minequprovenance = 'intranet')"
      -SOGoInternetDetectQualifier '"NOT (minequprovenance = \"intranet\")"'
  Note: all header field names are lowercase

SOGoInternetMailHeaders - dictionary
- if a request was detected as coming from the Internet, add the mail headers
  specified in this default
  eg: { received = "sogo depuis internet"; }
  -SOGoInternetMailHeaders "{received=\"sogo depuis internet\"; }"

SOGoMailEditorKeepTmpFile
- for debugging, if a mail was send, keep the file containing the MIME in the
  temporary directory for review instead of deleting it

SOGoMailTreeRootClass
- configure the root class of the mail tree, eg:
  - SOGoMailAccounts - standard view, show all IMAP4 accounts
  - SOGoMailAccount  - just show the standard mail account (tree at Inbox!)
  - SoApplication    - stop at the application object (show all folders)

SOGoDontUseETagsForMailViewer - YES|NO
- when enable SOGo won't tag mail viewers with an entity-tag (HTTP etag)
  - the etag ensures that the viewer will only get resend to the browser when
    it changed. In the case of IMAP4 this is never because URLs are one-time
    IDs in the IMAP4 server and messages cannot be edited in IMAP4
  - use the default for debugging (otherwise you won't see changes ...)

SOGoUseLocationBasedSentFolder - YES | NO
- when enable SOGo looks up the Sent folder by traversing the lookup-path
  until it finds a SOGoMailAccount object and then asks the account for the
  Sent folder.

Notes
=====

- we might want to bind the content viewers as SOPE methods to the mail class?
  eg "viewTextPlain"
  - this would not return a WOComponent, but a SoPageInvocation
  - caching might be more difficult 
    - some 'reuse component' support in SoPageInvocation for stateless
      components?
      - watch nested calls
  - for this we would need to add support for embedded calling of SOPE methods
    <var:component method="viewTextPlain" /> ?

Bodystructures
==============

Multiparts: multipart/MIXED, multipart/SIGNED

Feature: we fetch all plain/text bodies in a single run by traversing the
         body structure.

Sample Bodystructure (GPG):
---snip---
  {
    parts = (
        {
            bodyId = ""; 
            description = ""; 
            encoding = "QUOTED-PRINTABLE"; 
            lines = 22; 
            parameterList = {}; 
            size = 731; 
            subtype = PLAIN; 
            type = text; 
        }, 
        {
            bodyId = ""; 
            description = "Esta parte del mensaje"; 
            encoding = 7BIT; 
            parameterList = {name = "signature.asc"; }; 
            size = 196; 
            subtype = "PGP-SIGNATURE"; 
            type = application; 
        }
    ); 
    subtype = SIGNED; 
    type = multipart; 
  }
---snap---

Sample Body Structure (Image):
---snip---
  {
    parts = (
        {
            bodyId = ""; 
            description = ""; 
            encoding = BASE64; 
            parameterList = {name = "PoseChau.jpg"; "x-unix-mode" = 0644; }; 
            size = 58370; 
            subtype = JPEG; 
            type = image; 
        }, 
        {
            bodyId = ""; 
            description = ""; 
            encoding = 7BIT; 
            lines = 2; 
            parameterList = {charset = "US-ASCII"; format = flowed; }; 
            size = 57; 
            subtype = PLAIN; 
            type = text; 
        }
    ); 
    subtype = MIXED; 
    type = multipart; 
  }
---snap---