prafull has asked for the wisdom of the Perl Monks concerning the following question:

Hi All

How can we use mutt in perl to sent email with an attachment ?

Prafull

Replies are listed 'Best First'.
Re: mutt issue
by suhailck (Friar) on Jul 27, 2010 at 11:23 UTC
    You can use MIME::Lite module instead.


    ~suhail
Re: mutt issue
by almut (Canon) on Jul 27, 2010 at 11:44 UTC

    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...)

      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". ;-)
Re: mutt issue
by Anonymous Monk on Jul 27, 2010 at 11:27 UTC
    No