blob: 017d623585724a7545931d37a4278d98c1031a97 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#!/usr/bin/python
from QtMobility.Messaging import *
from PySide.QtCore import *
import sys
app = QCoreApplication(sys.argv)
print "Querying messages..."
# Match all messages whose status field includes the Incoming flag
filter = QMessageFilter.byStatus(QMessage.Incoming)
# Order the matching results by their reception timestamp, in descending order
sortOrder = QMessageSortOrder.byReceptionTimeStamp(Qt.DescendingOrder)
# Acquire a handle to the message manager
manager = QMessageManager()
# Find the matching message IDs, limiting our results to a managable number
matchingIds = manager.queryMessages(filter, sortOrder, 100)
n = 0
# Retrieve each message and print requested details
for id in matchingIds:
message = manager.message(id)
if manager.error() == QMessageManager.NoError:
result = []
if len(sys.argv) < 2:
# Default to printing only the subject
result.append(message.subject())
else:
# Extract the requested data items from this message
args = sys.argv
for arg in args[1:]:
if arg == "subject":
result.append(message.subject())
elif arg == "date":
result.append(message.date().toLocalTime().toString())
elif arg == "receivedDate":
result.append(message.receivedDate().toLocalTime().toString())
elif arg == "size":
result.append(str(message.size()))
elif arg == "priority":
if message.priority() == QMessage.HighPriority:
result.append("High")
elif message.priority() == QMessage.LowPriority:
result.append("Low")
else:
result.append("Normal")
elif (arg == "to") or (arg == "cc") or (arg == "bcc"):
addresses = []
dest = []
if arg == "to":
dest = message.to()
elif arg == "cc":
dest = message.cc()
else:
dest = message.bcc()
for addr in dest:
addresses.append(addr.addressee())
result.append(",".join(addresses))
elif arg == "from":
result.append(message.from_().addressee())
elif arg == "type":
result.append(message.contentType() + '/' + message.contentSubType())
elif arg == "body":
result.append(message.find(message.bodyId()).textContent())
elif arg == "attachments":
fileNames = []
for id in message.attachmentIds():
fileNames.append(message.find(id).suggestedFileName())
result.append(",".join(fileNames))
print(str(++n) + '\t' + "\t".join(result))
if len(matchingIds) == 0:
print "No matching messages!"
|