forked from Mirrors/freeswitch
838eb8aaec
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3763 d0543943-73ff-0310-b7d9-9358b9ac24b2
189 lines
3.7 KiB
Plaintext
189 lines
3.7 KiB
Plaintext
API documentation
|
|
-----------------
|
|
|
|
- doc for cache
|
|
|
|
- doc for mbox
|
|
|
|
- doc for MH
|
|
|
|
- doc for NNTP
|
|
|
|
- doc for POP3
|
|
|
|
- comments within code
|
|
|
|
|
|
mail drivers
|
|
------------
|
|
|
|
- bodystructure should be cached
|
|
|
|
- sort messages
|
|
|
|
- SMTP - recipient resolver
|
|
|
|
|
|
IMF
|
|
---
|
|
|
|
- rewrite efficient RFC 2822 message parser
|
|
|
|
|
|
IMAP
|
|
----
|
|
|
|
- rewrite efficient IMAP parser
|
|
|
|
|
|
MIME
|
|
----
|
|
|
|
- generate MIME-encoded headers (done in etpan)
|
|
|
|
|
|
binding
|
|
-------
|
|
|
|
- perl binding
|
|
|
|
- objective C binding
|
|
|
|
- C++ mapping
|
|
|
|
- python binding
|
|
|
|
- emacs-lisp binding
|
|
|
|
- ocaml binding
|
|
|
|
|
|
miscellaneous
|
|
-------------
|
|
|
|
- SASL authentification : cyrus-sasl
|
|
CRAM-MD5 / DIGEST-MD5
|
|
|
|
- S/MIME / GPG /PGP
|
|
|
|
- filtering / scoring / searching language
|
|
|
|
- generic tools for mail clients
|
|
|
|
- check SSL certificates
|
|
|
|
|
|
compilation
|
|
-----------
|
|
|
|
- improve autoconf / portability (header checks...)
|
|
|
|
|
|
|
|
new API
|
|
-------
|
|
|
|
wim delvaux
|
|
|
|
|
|
-- storage
|
|
|
|
struct storage {
|
|
void * data; /* storage dependant */
|
|
}
|
|
|
|
storage_bind(&storage, driver);
|
|
storage_release(&storage);
|
|
|
|
storage_commit(storage)
|
|
|
|
storage_get_folder_set(storage, pattern, &set) -> list of subfolders
|
|
list of pair (basename, path)
|
|
storage_get_folder_tree(storage, pattern, &tree) -> tree of folders
|
|
tree of pair (basename, path)
|
|
folder_list_cleanup(&list)
|
|
folder_tree_cleanup(&list)
|
|
|
|
storage_set_option(storage, option_id, value, ...)
|
|
storage_set_option_by_name(storage, option_name, value, ...)
|
|
|
|
storage_build_folder_name(storage, name, ...)
|
|
storage_create_folder(storage, name);
|
|
storage_delete_folder(storage, name);
|
|
storage_rename_folder(storage, folder, newname);
|
|
|
|
struct etpan_folder {
|
|
struct storage * storage;
|
|
}
|
|
|
|
one connection per storage,
|
|
a connection can be a set of TCP/IP socket
|
|
|
|
-- folder
|
|
|
|
folder_bind(&folder, storage, path);
|
|
folder_release(&folder);
|
|
|
|
folder_set_option(folder, option_id, value, ...)
|
|
folder_set_option_by_name(folder, option_name, value, ...)
|
|
folder_ctl(folder, function_id, param, ...)
|
|
folder_ctl_by_name(folder, function_name, param, ...)
|
|
|
|
folder_get_path(folder)
|
|
|
|
when an action is done on folder we have to query the storage state,
|
|
to see which folder we are manipulating and select the right folder.
|
|
|
|
one binding per folder.
|
|
|
|
several binding may be using one shared TCP/IP connection
|
|
or one TCP/IP connection for each binding.
|
|
|
|
folder_commit(folder) -- write all flags the data down for persistant
|
|
folder_expunge(folder) -- delete messages marked as deleted
|
|
folder_status(folder, &count, &unread_count, &new_count)
|
|
-- return messages number, unread messages number, new messages number
|
|
folder_append_message(folder, message) -- add a message
|
|
(message will already contain the new flags),
|
|
really add it after commit()
|
|
|
|
folder_get_envelopes_list(folder, &list) -- return list of message
|
|
binded to folder.
|
|
folder_fill_envelopes_list(folder, &list) -- fill the envelope info of the
|
|
list of messages.
|
|
|
|
switch_connection_to_binding()
|
|
|
|
struct connection {
|
|
struct current_binding * binding;
|
|
}
|
|
|
|
|
|
struct etpan_message {
|
|
struct etpan_folder * folder;
|
|
}
|
|
|
|
message_bind(&message, folder, msg_id) -- initializes the message structure
|
|
message_release(&message) -- release the message
|
|
message_commit(&message) -- let the folder structure knows the flags we changed
|
|
message_get_mime_tree(&message, &mime_tree) -- return the MIME structure of
|
|
the message
|
|
message_mime_tree_cleanup(mime_tree) -- free the mime structure returned
|
|
|
|
message_get_flags(&message, &flags) -- fetch the flags of the message
|
|
message_flags_cleanup(&message, flags) -- free the flags
|
|
|
|
struct etpan_mime {
|
|
struct etpan_message * message;
|
|
}
|
|
|
|
message_get_parsed_header(msg, &header)
|
|
message_get_raw_header(msg, &header)
|
|
message_get_header_set(msg, &headers)
|
|
message_get_body(msg, &Body)
|
|
|
|
standard headers
|
|
special headers
|
|
body
|
|
flags
|