почтовая команда unix - PullRequest
0 голосов
/ 23 мая 2011

Я использую почтовую команду unix в perl-скрипте. Я указываю 'to', 'cc', 'subject' и 'body' письма. Я не указываю адрес от. Откуда берется адрес? Просьба помочь

Ответы [ 3 ]

3 голосов
/ 23 мая 2011

Существуют переносимые библиотеки для обработки электронной почты, как упоминают daxim и David W, но если вам нужно быстрое исправление, это работает под linux, если ваша команда mail использует bsd-mailx (как на моей машине) ...

#!/usr/bin/env perl

$BODY = "Hello self";
$RECIPIENT = "destination\@email.local";
$FROM = "mike\@localhost";
$SUBJECT = "some subject here";
$CMD = qq(echo "$BODY" | mail -a "From: $FROM" -s $SUBJECT $RECIPIENT);
exec($CMD);

Если у вас есть дополнительные вопросы о команде unix mail, попробуйте man mail в командной строке.

1 голос
/ 23 мая 2011

Не используйте команду командной строки mail! Используйте Net :: SMTP .

Команда mail может даже не быть настроена в конкретной системе, и она не будет работать в Windows. Между тем, Net::SMTP - это стандартный модуль Perl, который должен быть доступен во всех системах.

Никогда не использовал его раньше? Прочитайте документацию и попробуйте. Вот как ты учишься.

1 голос
/ 23 мая 2011

В настоящее время команда mail в большинстве систем является Семейная реликвия mailx .Он заявляет о совместимости с POSIX, поэтому информация, которую я привожу здесь , должна быть полезной для любой хорошо действующей команды mail.

Адрес From устанавливается с помощью:

  • либо user@domain, возвращаемый соответствующими системными вызовами POSIX (другие способы доступа к ним см. В командах оболочки whoami и domainname -f)
  • или установлен fromпеременная окружения
  • или задается параметром командной строки -r (не рекомендуется?)

Обязательный Clippy: Привет!Я вижу, вы пытаетесь отправить почту из Perl .Вы хотели использовать вместо этого Email :: Sender / Email :: Simple ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...