Rick Merrill wrote:
Say I have a list of 120 emails - how would I print out
that list of "subject" (not the content)?

The proper way to do this is to access the list the same way SM does internally - using JavaScript. There may be add-ons that already provide that functionality, but since I already programmed this functionality for myself years ago, I'll just share it with you. I thought I had already added it to my Custom Buttons page [1], but obviously I haven't (yet). Seems my todo list never stops growing...

[1]: <http://jens.hatlak.de/en/mozilla/buttons/index.php4>

Anyway, in order to make use of the below, install the Custom Buttons add-on first, then create a new Custom Button in MailNews by right-clicking a MailNews toolbar and choosing Add Button (not sure whether that's the exact label in English, I'm having a German SM here), copy the code below into the textarea on the first tab of the dialog, press OK, and then use Customize from a MailNews toolbar's context menu to finally add the newly created button.

After that you can of course try and modify the code, e.g. in order to avoid the <br>s if all you need is plain text as output.

---------------

function getSubjectFromMsgHdr(aMsgHdr) {
  if (aMsgHdr.mime2DecodedSubject)
    return aMsgHdr.mime2DecodedSubject;
  return aMsgHdr.subject;
}

function copyHTMLToClipboard(aHTMLText) {
  let strlen = aHTMLText.length * 2;
  let str = Components.classes["@mozilla.org/supports-string;1"]
              .createInstance(Components.interfaces.nsISupportsString);
  if (!str)
    return false;
  str.data = aHTMLText;
  var trans = Components.classes["@mozilla.org/widget/transferable;1"]
                .createInstance(Components.interfaces.nsITransferable);
  if (!trans)
    return false;
  trans.addDataFlavor("text/unicode");
  trans.setTransferData("text/unicode", str, strlen);
  trans.addDataFlavor("text/html");
  trans.setTransferData("text/html", str, strlen);
  var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"]
                    .getService(Components.interfaces.nsIClipboard);
  if (!clipboard)
    return false;
  clipboard.setData(trans, null,
    Components.interfaces.nsIClipboard.kGlobalClipboard);
  return true;
}

let html = "";
let msgs = gFolderDisplay.selectedMessages;
for (let i = 0; i < msgs.length; ++i) {
  let subject = getSubjectFromMsgHdr(msgs[i]);
  html += subject + "<br>\n";
}
copyHTMLToClipboard(html);

---------------

HTH

Jens

--
Jens Hatlak <http://jens.hatlak.de/>
SeaMonkey Trunk Tracker <http://smtt.blogspot.com/>
_______________________________________________
support-seamonkey mailing list
[email protected]
https://lists.mozilla.org/listinfo/support-seamonkey

Reply via email to