1.1 --- a/actions/SendMessage.py Sat May 18 00:40:20 2013 +0200
1.2 +++ b/actions/SendMessage.py Sat May 18 01:00:16 2013 +0200
1.3 @@ -36,6 +36,7 @@
1.4 message = form.get("message", [""])[0]
1.5 recipient = form.get("recipient", [""])[0]
1.6 preview = form.get("preview")
1.7 + queue = form.get("queue")
1.8
1.9 # Get a list of potential recipients.
1.10
1.11 @@ -65,6 +66,8 @@
1.12 "message_default" : escape(message),
1.13 "preview_label" : escattr(_("Preview message")),
1.14 "preview_output" : preview_output,
1.15 + "queue_label" : escape(_("Queue message for sending")),
1.16 + "queue_checked" : queue and 'checked="checked" ' or "",
1.17 }
1.18
1.19 # Prepare the output HTML.
1.20 @@ -98,6 +101,11 @@
1.21 </td>
1.22 </tr>
1.23 <tr>
1.24 + <td class="label"><label>%(queue_label)s</label></td>
1.25 + <td>
1.26 + <input name="queue" type="checkbox" value="true" %(queue_checked)s/>
1.27 + </td>
1.28 + <tr>
1.29 <td></td>
1.30 <td class="buttons">
1.31 %(buttons_html)s
1.32 @@ -117,6 +125,7 @@
1.33
1.34 text = form.get("message", [None])[0]
1.35 recipient = form.get("recipient", [None])[0]
1.36 + queue = form.get("queue")
1.37
1.38 if not text:
1.39 return 0, _("A message must be given.")
1.40 @@ -136,6 +145,7 @@
1.41
1.42 container = MIMEMultipart("related")
1.43 container["Update-Action"] = "store"
1.44 + container["To"] = recipient
1.45
1.46 # Add the message body and any attachments.
1.47
1.48 @@ -204,16 +214,24 @@
1.49
1.50 # Sign, encrypt and send the message.
1.51
1.52 - try:
1.53 - message = message.get_payload()
1.54 - if signer:
1.55 - message = gpg.signMessage(message, signer)
1.56 + message = message.get_payload()
1.57 +
1.58 + if not queue:
1.59 + try:
1.60 + if signer:
1.61 + message = gpg.signMessage(message, signer)
1.62
1.63 - message = gpg.encryptMessage(message, fingerprint)
1.64 - sendMessage(message, url)
1.65 + message = gpg.encryptMessage(message, fingerprint)
1.66 + sendMessage(message, url)
1.67 +
1.68 + except MoinMessageError, exc:
1.69 + return 0, "%s: %s" % (_("The message could not be prepared and sent:"), exc)
1.70
1.71 - except MoinMessageError, exc:
1.72 - return 0, "%s: %s" % (_("The message could not be prepared and sent:"), exc)
1.73 + # Or queue the message.
1.74 +
1.75 + else:
1.76 + outbox = ItemStore(request.page, "outgoing-messages", "outgoing-message-locks")
1.77 + outbox.append(message.as_string())
1.78
1.79 return 1, None
1.80