sogo/UI/MailerUI/README
Ludovic Marcotte b81ed3b2fe See ChangeLog
Monotone-Parent: 25a398b968eb4c84157efcd698facc74c5738e07
Monotone-Revision: a9d5ad1c7b8fa6de9db2b7b205864f5cd9d96b3b

Monotone-Author: ludovic@Sophos.ca
Monotone-Date: 2009-10-09T21:54:07
Monotone-Branch: ca.inverse.sogo
2009-10-09 21:54:07 +00:00

179 lines
4.7 KiB
Plaintext

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---