Я написал программу-обертку для mailx с использованием perl, которая позволяет мне легко добавлять вложения и делать некоторые другие изящные вещи, которые немного разочаровывают при выполнении mailx.:
use strict;
use warnings;
use Getopt::Long;
my ( $to, $from, $subject, $attachments, $body, $file ) = (undef) x 7;
GetOptions(
"to=s" => \$to,
"from=s" => \$from,
"subject=s" => \$subject,
"attachments=s" => \$attachments,
"body=s" => \$body,
"file=s" => \$file,
);
$to = getlogin unless $to;
$from = getlogin unless $from;
$subject = " " unless $subject;
Эта оболочка до сих пор работала нормально при вызове другими скриптами.Однако теперь, когда у нас есть скрипт, запускаемый Cron, происходят некоторые забавные вещи.Это задание Cron вызывает оболочку, только указав -t и -su, но не указав -fr (да, используются сокращения флагов).В полученном электронном письме правильно указывается «Кому:», однако отправитель указан как -s@blah.com с пустой строкой темы.Согласно приведенному выше коду, я могу только предположить, что между Cron и модулем Getopt :: Long происходит нечто странное.Кто-нибудь знает, почему работа Cron может вызвать такое странное поведение?Если это что-то еще, что не так, что бы это было?