http://www.perlmonks.org?node_id=851527


in reply to mutt issue

Something like this:

#!/usr/bin/perl my $address = 'some@address'; my $attachment = 'some.file'; my $subject = 'some subject'; system "mutt -a '$attachment' -s '$subject' '$address' </dev/null";

But beware what you interpolate — the command line is executed by the shell!

(Instead of the </dev/null (for no mail body), you could also pipe some message to the command...)

Replies are listed 'Best First'.
Re^2: mutt issue
by afoken (Chancellor) on Jul 27, 2010 at 12:24 UTC
    But beware what you interpolate — the command line is executed by the shell!

    Yeah, and without any need for that. Using a list of arguments instead of a string would have prevented that. Of course, that would have broken the redirection of STDIN to /dev/null. But that redirection is most times not what the OP wants. You also noticed that:

    (Instead of the </dev/null (for no mail body), you could also pipe some message to the command...)

    And at this point, we have reached Safe Pipe Opens, with examples that have much less traps than system with an interpolated string and characters that trigger shell invocation.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)