KornShell (ksh) code pour envoyer des pièces jointes avec mailx et uuencode?
J'ai besoin de joindre un fichier avec mailx mais pour le moment je ne suis pas en avoir du succès.
Voici mon code:
subject="Something happened"
to="[email protected]"
body="Attachment Test"
attachment=/path/to/somefile.csv
uuencode $attachment | mailx -s "$subject" "$to" << EOF
The message is ready to be sent with the following file or link attachments:
somefile.csv
Note: To protect against computer viruses, e-mail programs may prevent
sending or receiving certain types of file attachments. Check your
e-mail security settings to determine how attachments are handled.
EOF
Tous les commentaires seraient très appréciées.
Mise à jour
J'ai ajouté l'attachement var pour éviter d'avoir à utiliser le chemin d'accès à chaque fois.
OriginalL'auteur Nano Taboada | 2008-09-18
Vous devez vous connecter pour publier un commentaire.
Vous avez à concat à la fois le texte de votre message et la uuencode pièce jointe:
Il y a différentes façons de fournir le texte du message, c'est juste un exemple qui est proche de votre question initiale. Si le message doit être réutilisé, il est logique de simplement stocker dans un fichier et utiliser ce fichier.
C'est jeter l'erreur suivante: cat: impossible d'ouvrir le msg.txt
Mon mauvais! j'ai espacé les cat >msg.txt <<EOF
OriginalL'auteur Palmin
Eh bien, ici, sont les premiers problèmes que vous avez.
Vous semblent être en supposant qu'un client de messagerie va gérer uuencode attachement sans les en-têtes. Cela n'arrivera pas.
Vous êtes mauvais usage de redirection d'e/S: uuencode de sortie et l'ici-document sont nourries de mailx, qui ne peut pas se produire.
Vous êtes en abuser uuencode: si un chemin est donné, c'est juste un nom à donner au fichier décodé, pas un nom de fichier d'entrée. En donnant au fichier deux fois à attribuer le même nom pour le fichier décodé comme ce qui a été lu. L'indicateur-m forces de l'encoder en base64. Mais ce n'est toujours pas fournir une pièce jointe des en-têtes pour mailx.
Vous êtes à la meilleure façon d'obtenir une copie de mpack, qui permettra de faire ce que vous voulez.
Si vous devez le faire, vous pourriez faire quelque chose comme ceci:
Il y a beaucoup d'autres possibilités... mais celui-ci a encore le document ici
comme dans votre exemple, et a été facile sur le dessus de ma tête, et il n'y a pas de fichier temp impliqués.
Je vais avoir l'erreur suivante: uuencode: illegal option -- m Utilisation: uuencode [infile] fichier distant, remotefile
Vous avez et ancienne version de uuencode, avant il a fourni de l'encodage base64... vous pouvez toujours vous faire mpack et viens de le compiler pour utiliser localement sous votre compte... c'est ce que je ferais probablement.
OriginalL'auteur Thomas Kammeyer