Saturday, August 22, 2009

An easier way to compose Thunderbird mail from the command line

For sometime, I had wished for an easier way to attach the output of diff to a new Thunderbird mail than the following:
  1. diff -u file1 file2 >/tmp/mypatch
  2. Switch to Thunderbird
  3. Click the "Write" icon
  4. Click the "Attach" icon in the compose mail window
  5. Browse to the file
  6. Click the "Open" button to finally attach the file
Turns out, TB's compose mail window can be created from the command-line by passing the -compose option to thunderbird. However, passing the mail parameters like "to", "subject", "attachment", etc. via this command is quite ugly:
thunderbird -compose "to='john@example.com',subject='dinner',body='How about dinner tonight?',attachment='file:///tmp/food.doc'"

To get over this mess, and sort out my original problem with the attachments, I wrote a small script called tb-compose:
http://github.com/chaitanyagupta/misc-utils/blob/master/tb-compose
Example usage:
tb-compose --to john@example.com --subject dinner --body "How about dinner tonight?" --attachment /tmp/food.doc

Moreover, if - is passed as a value for --attachment, the contents of standard input are attached to the mail.
diff -u file1 file2 | tb-compose --attachment -

And if --attachment-name is used when stdin is being attached, the given name is used as the name for the attached file.
diff -u file1 file2 | tb-compose --attachment - --attachment-name mypatch

Makes my life a little easier :-)

Labels: ,



Comments: Post a Comment

Subscribe to Post Comments [Atom]





<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]