This is an Email client application, which enables sending email and retrieving email from the remote server, the application also provides user methods to modify and edit the email account configurations.
Email depends on the following libraries:
l Gtk+-2.0 The GTK+ library contains widgets, that is, GUI components such as GtkButton or GtkTextView.
l libgemwidget A Gtk+ for Embedded library contains widgets which are mostly used in embedded devices.
l libgpephone Shared code for applications developed for the phone application framework providing easy access to softkey definitions and communication.
l Tinymail Email client framework for small device
Email application is just a demo email client which implements only very limited function.
Email application depends on tinymail libraries to implement the real email transmission, and as to the user interface, email application reuses part of SMS application code, and do some specific modification. So, to the layout of application interface, Email looks very simiar as SMS application, and to the source code, Email has the almost the same structure and even some function name with SMS application.
Email application mainly provides functions to send/retrieve email and set account information.
Email application provides email composing user interface to accept user input. According to the input information, Email application produce message instance in form of TngMsg with the interface provided by tinymail library, and invoke the relevant interface in tinymail library to send it out. User can trigger the retrieving of email from remote email server by selecting retrieve item in pop-up menu or entering inbox first time. The Email application will download all the messages in inbox folder of remote email server and list them in local INBOX folder, user can view each of them in INBOX. But currently email application will not store the messages in local device.
Email application provides a setting interface to enable user edit email account information. Currently, email client only supports one email account including sending and receiving configurations. According to the functionality of tinymail library, email client support POP3, IMAP and SMTP protocol, and support SSL encryption if necessary.
This section explains what you should know as a programmer about Email application when developing it. It helps to understand its architecture and implementation. Email application's design and concepts are all very straightforward and easy to understand, and they are listed in the following.
The following graphic gives out the general architecture of SMS application.

Figure 3.1 Architecture of Email client
As described in architecture figure, there are five main windows in Email application, they are listed in following table:
|
Component |
Functionality |
Function |
|
Email main window |
Display main entries of Email application, including folder list and entry for composing message and account setting. |
make_sms_window() |
|
Email inbox window |
Display message list in inbox folder. |
make_sms_folder() |
|
email write window |
interface allowing user compose email |
make_sms_write() |
|
email view window |
Display the detailed information of a specific email |
make_sms_view_test() |
|
Email setting window |
Interface for browsing and editing account information. |
make_sms_setting() |
Email application invokes tinymail library to implement email sending and retrieving function. libtinymail defines a set of unified interface, and libtinymail-camel and libtinymail-simple modules are used in Email application to implement the relevant interface. Libtinymail-simple is a new module generated by tinymail patch, it is a simple platform implementation for tinymail account-store and device interface. Next section is the introduction of tinymail patch.
Email client application depends on patched tinymail. The patch is based on tinymail revision 1112.
The patch includes:
for tinymail account-store and device interface.
protocol in libtinymail-camel layer.
for iconv