Итак, я предполагаю, что у вас есть что-то вроде этого для запуска через командную строку:
my $your_email = "you@foo.bar";
my $recipient_email = "them@foo.bar";
и это при "работе через CGI":
my $your_email = "you@foo.bar\n";
my $recipient_email = "them@foo.bar\n";
Итак, вопрос, который я бы вам задал, заключается в том, как вы вызываете sendmail с указанными выше переменными, а также что вы имеете в виду, когда говорите «работает через CGI», а не через командную строку? Вы просто добавляете код CGI и по-прежнему работаете через командную строку или посещаете его URL в веб-браузере?