Question

J'ai un script qui adresse et envoie un courrier électronique, mais j'ai besoin d'un corps dans le message sans créer de fichier , puis en l'insérant avec la ligne de commande MAIL standard.

Comment puis-je faire cela?

Était-ce utile?

La solution

En supposant que le corps que vous souhaitez créer puisse être écrit dans SYS $ OUTPUT (par exemple, le résultat d'une procédure de commande ou d'une commande DCL), vous pouvez utiliser DCL PIPE pour diriger la sortie dans VMS Mail, comme:

$ 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"

La commande PIPE a été ajoutée dans OpenVMS V7.1. Si vous utilisez un système antérieur à la version 7.1, votre seul choix est d'écrire dans un fichier temporaire et de le nettoyer.

Modifier: pour répondre au commentaire, si vous souhaitez éliminer les affichages interactifs de la commande Mail, vous pouvez rediriger SYS $ OUTPUT vers NLA0 :, comme dans:

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

Les messages d'erreur vont à SYS $ ERROR, vous verrez donc toujours les échecs. Voir HELP PIPE pour plus de bonté.

Autres conseils

Demandez au script de créer un fichier temporaire pour contenir le corps du message.

Mail acceptera un fichier texte sur la ligne de commande, comme la liste des utilisateurs et le / subj

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top