|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-BA7B9BA6-B840-5182-90B0-A4914592A40D" xml:lang="en"><title>SendAs |
|
13 Server</title><shortdesc>This section provides detailed description of the SendAs Server |
|
14 functions and how the SendAs Server processes the client request. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
15 <section><title>SendAs Server process and data flow</title> <p>The following |
|
16 figure details the processes and data flow with SendAs Server. </p> <fig id="GUID-644B137D-D8A4-514F-9D3F-238CC69C751E"> |
|
17 <title> SendAs Server process and data flow </title> |
|
18 <image href="GUID-AE8D314A-5381-5576-9B17-94BA029A7FEA_d0e263269_href.jpg" placement="inline"/> |
|
19 </fig> </section> |
|
20 <section><title>SendAs Server functionality</title> <p>The following sections |
|
21 give detailed information about the SendAs sever functionality: </p> <p><b>Creating |
|
22 a SendAs message</b> </p> <p>Client applications can create a message of a |
|
23 given type that supports SendAs only in the Drafts folder of the message store. |
|
24 It uses <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-C7CD5EC4-14EE-3375-BEA0-C7FD273C2574"><apiname>RSendAsMessage::Create()</apiname></xref> to create the message. |
|
25 An MTM can specify its support of SendAs for a message type in the following |
|
26 two ways: </p> <ul> |
|
27 <li id="GUID-E25A3621-D706-5016-9F94-AE823C597AD7"><p>The message type can |
|
28 set the <xref href="GUID-7D5C9320-17AB-381E-8369-1804EB143199.dita#GUID-7D5C9320-17AB-381E-8369-1804EB143199/GUID-4EDB6002-8750-3E7D-AC60-BFD2BD441E69"><apiname>MTM_CAPABILITIES::send_capability</apiname></xref> resource in its |
|
29 resource file. This allows the Message Server to know whether the message |
|
30 type supports SendAs without loading its MTMs. </p> </li> |
|
31 <li id="GUID-1663559F-C4CE-5B40-848C-B312E60FD8A0"><p>If the MTM does not |
|
32 declare whether it supports SendAs in its resource file, the Message Server |
|
33 loads the MTM and queries if it supports the <xref href="GUID-AB92627B-67B0-39AC-9B00-854EA1589B35.dita"><apiname>KUidMtmQueryCanSendMsg</apiname></xref> capability. </p> </li> |
|
34 </ul> <p><b>Modifying a SendAs message</b> </p> <p>Client applications can |
|
35 modify a message created by the <xref href="GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6.dita#GUID-4499491F-FA1A-38E1-BB13-1AB184A31DA6/GUID-C7CD5EC4-14EE-3375-BEA0-C7FD273C2574"><apiname>RSendAsMessage::Create()</apiname></xref> method. |
|
36 After sending the request, client applications can no longer modify the message. |
|
37 They can add the following message parts, if supported by the message type. </p> <ul> |
|
38 <li id="GUID-C84B4945-0E7A-5309-94FF-B849D16F11B7"><p>Body text </p> </li> |
|
39 <li id="GUID-169AEA41-8650-5BE4-8386-36DD3BE1215B"><p>Attachment </p> </li> |
|
40 <li id="GUID-EA862642-6FD7-5248-B7ED-6981AB73CA69"><p>BIO type </p> </li> |
|
41 <li id="GUID-BF7BDB3F-5EAA-565B-8238-3F34E4608222"><p>Recipients—address, |
|
42 alias and type. For example, To, Cc or Bcc. </p> </li> |
|
43 <li id="GUID-9509C4D9-A1B1-5C9D-9890-AEBA109ECA0A"><p>Subject </p> </li> |
|
44 </ul> <p><b>Sending a SendAs Message </b> </p> <p>When a client application |
|
45 requests to send a message, it must specify whether SendAs must get confirmation |
|
46 from the user to send the message or not. </p> <p>If a client application |
|
47 that requests a unconfirmed send is not trusted with the capabilities specified |
|
48 by the Server MTM of the given message type, the SendAs Server automatically |
|
49 performs a confirmed send. </p> <p>For a confirmed send, the SendAs Server |
|
50 uses the UI MTM for the message type to confirm the send request by querying |
|
51 the phone user. If the send is confirmed by the phone user, the SendAs Server |
|
52 moves the message to Outbox and sends the message. If the send is refused, |
|
53 then the message remains in the Drafts folder and the Send-As Server fails |
|
54 the send request. </p> <p>After the message send is initiated, the Server |
|
55 MTM for the message type takes responsibility of the message. For successful |
|
56 and unsuccessful sends, the Server MTM decides to which folder the message |
|
57 must be moved to. It also governs the rescheduling policy for a failed send |
|
58 request. </p> <p>A client application can obtain progress for both types of |
|
59 send requests. Any failures associated with the send are reported back to |
|
60 the client application through this progress information. The progress information |
|
61 also provides a send state. For example, message waiting to be sent, sending, |
|
62 message sent, or message send failed. </p> <p><b>Launching an editor for a |
|
63 message type</b> </p> <p>The SendAs Server allows client applications to launch |
|
64 an editor for a specified message type that supports SendAs. After creating |
|
65 a message, a client application can request to launch the appropriate editor. |
|
66 It can launch the editor in two ways: a fire-and-forget launch or a launch |
|
67 and wait. With the fire-and-forget launch, the client application is not notified |
|
68 when an editor is closed. The launch and wait notifies the client application |
|
69 when an editor closes. </p> <p>After the editor is launched, the SendAs Server |
|
70 is no longer responsible for that message, the editor takes the responsibility. |
|
71 The message editors are applications that are trusted with the required capabilities |
|
72 to modify and send messages of that type. They communicate directly with the |
|
73 Message Server using the Message Server APIs. </p> <p><b>Querying the message |
|
74 type registry</b> </p> <p>The SendAs Server provides several APIs to allow |
|
75 client applications to query the message type registry. The following are |
|
76 the available queries: </p> <ul> |
|
77 <li id="GUID-51165376-26AF-524E-8BA8-B4EFC0C1716D"><p>List the registered |
|
78 message types that support a specified set of message capabilities. For example, |
|
79 amount of body text allowed, attachments supported and so on. </p> </li> |
|
80 <li id="GUID-E875CF63-B35F-581B-A8AE-A04E15A356CE"><p>Obtain the available |
|
81 account names for a specified message type </p> </li> |
|
82 <li id="GUID-EBE65718-F480-5840-8A89-A47C099021E3"><p>Get the localised human |
|
83 readable name for a specified message type that supports SendAs. </p> </li> |
|
84 </ul><note> Message types that have no accounts or invalid accounts are not |
|
85 listed. Validation is done by SendAs querying whether the UI MTM supports |
|
86 validation of the accounts. If the UI MTM does not support validation, all |
|
87 accounts are assumed to be valid. If the UI MTM supports the verification, |
|
88 then the list of service IDs is passed to <xref href="GUID-1471F3BD-21BF-3600-BEA2-F3B2C6DC4FFB.dita"><apiname>InvokeSyncFunctionL</apiname></xref> using |
|
89 the <xref href="GUID-EFB2418B-F3A9-3BF6-90D2-22985845EAAE.dita"><apiname>KMtmUiFunctionValidateService</apiname></xref> command.</note> <p>The |
|
90 SendAs Server allows client applications only to query the message type registry |
|
91 about message types that support SendAs. Other message types are ignored. </p> </section> |
|
92 </conbody><related-links> |
|
93 <link href="GUID-B015C4A3-469E-5AC4-B9B9-A24AF7444E65.dita"><linktext>SendAs Overview</linktext> |
|
94 </link> |
|
95 </related-links></concept> |