Domanda

Ho uno script che indirizza e invia un'e-mail ma ho bisogno di un corpo nel messaggio senza creare un file e quindi inserire il file con la riga di comando MAIL standard.

Come posso farlo?

È stato utile?

Soluzione

Supponendo che il corpo che si desidera creare sia qualcosa che è possibile scrivere su SYS $ OUTPUT (ad es. l'output di una procedura di comando o comando DCL), quindi è possibile utilizzare DCL PIPE per reindirizzare l'output in VMS Mail, come:

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

o

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

Il comando PIPE è stato aggiunto in OpenVMS V7.1. Se sei in qualche modo su un sistema precedente alla 7.1, la tua unica scelta è scrivere su un file temporaneo e ripulire.

Modifica: per rispondere al commento, se si desidera eliminare i display interattivi dal comando Mail, è possibile reindirizzare SYS $ OUTPUT su NLA0 :, come in:

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

I messaggi di errore vanno a SYS $ ERROR, quindi vedrai ancora eventuali errori. Vedi AIUTO TUBO per più bontà.

Altri suggerimenti

Chiedi allo script di creare un file temporaneo per contenere il corpo del messaggio.

Mail accetterà un file di testo sulla riga di comando, come l'elenco degli utenti e / subj

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top