Как я могу написать тело письма VMS? - PullRequest
0 голосов
/ 13 января 2009

У меня есть скрипт, который адресует и отправляет электронное письмо, но мне нужно тело сообщения без создания файла и последующей вставки файла со стандартной командной строкой MAIL.

Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 13 января 2009

Предполагая, что тело, которое вы хотите создать, является чем-то, что вы можете записать в SYS $ OUTPUT (например, вывод командной процедуры или команды DCL), тогда вы можете использовать DCL PIPE для передачи вывода в VMS Mail, например: *

$ PIPE write sys$output "The date is ", f$cvtime() | MAIL SYS$INPUT smith/SUBJ="Piping in DCL"

или

$ PIPE DIR *.LOG | MAIL SYS$INPUT smith/SUBJ="Piping in DCL"

Команда PIPE была добавлена ​​в OpenVMS V7.1. Если вы как-то работаете в системе до 7.1, тогда ваш единственный выбор - записать во временный файл и очистить.

Изменить: Чтобы ответить на комментарий, если вы хотите исключить интерактивные дисплеи из команды Почта, вы можете перенаправить SYS $ OUTPUT на NLA0 :, как в:

$ PIPE DIR *.LOG |  MAIL SYS$INPUT smith/SUBJ="Piping in DCL" > NLA0:

Сообщения об ошибках отправляются в SYS $ ERROR, поэтому вы все равно увидите ошибки. См. ПОМОЩЬ ТРУБЫ для большего совершенства.

0 голосов
/ 13 января 2009

Сценарий должен создать временный файл для хранения тела сообщения.

Почта будет принимать текстовый файл в командной строке, например список пользователей и / subj

...