1#!/usr/bin/perl -w
2
3use strict;
4
5use Getopt::Long;
6use URI::Escape;
7
8#  * This file is free software; you can redistribute it and/or modify it
9#  * under the terms of the GNU General Public License as published by
10#  * the Free Software Foundation; either version 3 of the License, or
11#  * (at your option) any later version.
12#  *
13#  * This program is distributed in the hope that it will be useful, but
14#  * WITHOUT ANY WARRANTY; without even the implied warranty of
15#  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16#  * General Public License for more details.
17#  *
18#  * You should have received a copy of the GNU General Public License
19#  * along with this program; if not, write to the Free Software
20#  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21#  *
22#  * Copyright 2007 Paul Mangan <paul@claws-mail.org>
23#  *
24
25# This script enables inserting files into the message body of a new Claws Mail
26# Compose window from the command line. Additionally To, Cc, Bcc, Subject and
27# files to attach to the message can be specified
28
29my (@inserts,@attachments,@lines,@output) = ();
30my $body = "";
31my $attach_list = "";
32my $to = "";
33my $cc = "";
34my $bcc = "";
35my $subject = "";
36my $help = "";
37
38GetOptions("to=s"      => \$to,
39	   "cc=s"      => \$cc,
40	   "bcc=s"     => \$bcc,
41	   "subject=s" => \$subject,
42	   "attach=s"  => \@attachments,
43	   "insert=s"  => \@inserts,
44	   "help|h"    => \$help);
45
46if ($help) {
47	help_me();
48}
49
50@attachments = split(/,/, join(',', @attachments));
51@inserts = split(/,/, join(',', @inserts));
52
53foreach my $attach (@attachments) {
54	$attach_list .= "$attach ";
55}
56
57foreach my $insert (@inserts) {
58	open(FILE, "<$insert") || die("can't open file\n");
59		@lines = <FILE>;
60		push(@output, @lines);
61	close FILE;
62}
63
64foreach my $line (@output) {
65	$body .= "$line";
66}
67
68$to = uri_escape($to);
69$cc = uri_escape($cc);
70$bcc = uri_escape($bcc);
71$subject = uri_escape($subject);
72$body = uri_escape($body);
73
74system("claws-mail --compose \"mailto:$to?subject=$subject&cc=$cc&bcc=$bcc&body=$body\" --attach $attach_list");
75
76exit;
77
78sub help_me {
79	print<<'EOH';
80Usage:
81	claws-mail-compose-insert-files.pl [options]
82Options:
83	--help -h
84	--to "Person One <mail@address.net>"
85	--cc "Person One <mail@address.net>"
86	--bcc "Person One <mail@address.net>"
87	--subject "My subject"
88	--attach FILE
89	--insert FILE
90
91For multiple recipients separate the addresses with ','
92e.g. --to "Person One <mail@address.net>,Person Two <mail2@address.net>"
93--attach and --insert can be used multiple times
94
95EOH
96exit;
97}
98