1      Introduction. 2

1.1       Brief introduction. 2

1.2       Dependency. 2

2      Overview.. 3

3      Design and Concepts. 3

3.1       Architecture. 3

3.2       Tinymail patch. 5

4      Package Map. 6

 

 

 


1         Introduction

1.1        Brief introduction

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.

1.2        Dependency

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   

           


2         Overview

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.

3         Design and Concepts

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.

 

3.1        Architecture

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.

 

3.2        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


4         Package Map