Pergunta

Eu tenho um script que aborda e envia um e -mail, mas preciso de um corpo na mensagem sem criar um arquivo e depois inserir o arquivo com a linha de comando de correio padrão.

Como eu posso fazer isso?

Foi útil?

Solução

Supondo que o corpo que você deseja criar é algo que você pode escrever no SYS $ saída (por exemplo, a saída de um procedimento de comando ou comando DCL), então você pode usar o tubo DCL para tubar a saída no correio VMS, como:

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

ou

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

O comando do tubo foi adicionado no OpenVMS v7.1. Se você estiver de alguma forma em um sistema pré-7.1, sua única opção é escrever em um arquivo temporário e limpar.

Editar: Para responder ao comentário, se você deseja eliminar os monitores interativos do comando Mail, você pode redirecionar a saída SYS $ para NLA0:, como em:

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

As mensagens de erro vão para o erro SYS $, para que você ainda verá falhas. Veja Help Pipe para mais bondade.

Outras dicas

Peça ao script um arquivo temporário para segurar o corpo da mensagem.

O e -mail aceitará um arquivo de texto na linha de comando, como a lista de usuários e o /subj

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top