Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue115:tuto1 [2016/12/11 09:31] – d52fr | issue115:tuto1 [2016/12/12 16:03] (Version actuelle) – auntiee |
---|
Let’s look a little closer. You can easily change the “r” option to configure which “from line” is presented to the mail client when the email is picked up at the other end. This is sometimes surprisingly difficult to get working with other command-line mail clients.** | Let’s look a little closer. You can easily change the “r” option to configure which “from line” is presented to the mail client when the email is picked up at the other end. This is sometimes surprisingly difficult to get working with other command-line mail clients.** |
| |
De temps en temps, je me trompe quand j'essaie d'envoyer un email par la ligne de commade via un script ou une application. Une tâche qui paraît si simple comme le changement de l'adresse de l'expéditeur peut parfois demander beaucoup de temps pour y arriver. Ce qui suit va vous rapprocher, avec un peu de chance, d'une solution un peu plus rapide. | De temps en temps, je me trompe quand j'essaie d'envoyer un mail en ligne de commande via un script ou une application. Une tâche qui paraît très simple, comme changer l'adresse de l'expéditeur, peut parfois demander beaucoup de temps. Ce qui suit va vous rapprocher, avec un peu de chance, d'une solution un peu plus rapide. |
| |
Même si vous avez installé un MTA (Mail Transfert agent - Agent de transfert du courrier) comme l'excellent Postfix (http://www.postfix.org), vous devriez avoir besoin de modifier l'adresse mail de l'expéditeur (ou la ligne « De ») pour refléter que votre mail vient d'un script particulier, sur une machine spécifique et pas simplement du trop habituel « root@localhost ». | Même si vous avez installé un MTA (Mail Transfert agent - Agent de transfert du courrier) comme l'excellent Postfix (http://www.postfix.org), vous devriez peut-être modifier l'adresse mail de l'expéditeur (ou la ligne « De ») pour indiquer que votre mail vient d'un script particulier, sur une machine spécifique, et pas simplement du trop habituel « root@localhost ». |
| |
Passons à l'utilitaire « mail ». Il y a des multiples versions historiques et des retours en arrière de l'utilitaire « mail » mais ce sujet sera pour une autre fois. Si vous utilisez un dérivé de Red Hat, vous feriez mieux, dans ce cas, d'essayer d'installer « mailx » ou « nail » pour disposer de la pleine fonctionnalité suivante, mais sachez que les résultats peuvent diverger. Cependant, sur Ubuntu et Debian (sur la plupart des versions), ça devrait marcher avec la paquet « heirloommailx ». Installez-le simplement, comme ceci : | Passons à l'utilitaire « mail ». Il y a de multiples versions historiques et des régressions de l'utilitaire « mail », mais ce sujet sera pour une autre fois. Si vous utilisez un dérivé de Red Hat, vous feriez mieux d'essayer d'installer « mailx » ou « nail » pour disposer de la fonctionnalité suivante, mais sachez que les résultats peuvent diverger. Cependant, sur Ubuntu et Debian (sur la plupart des versions), le paquet « heirloommailx » devrait faire l'affaire. Installez-le simplement, comme ceci : |
| |
aptget install heirloommailx | aptget install heirloommailx |
| |
Passons un moment dans l'analyse de cet exemple de ligne de commande chargée : | Réfléchissons un instant à cet exemple bien rempli de ligne de commande : |
| |
mailx r 'mycustomsender@chrisbinnie.tld' s 'Your Subject Line' a '/fullpath/myattachment' S 'smtp=localhost' 'destination@chrisbinnie.tld' | mailx r 'mycustomsender@chrisbinnie.tld' s 'Your Subject Line' a '/fullpath/myattachment' S 'smtp=localhost' 'destination@chrisbinnie.tld' |
| |
Regardons la d'un peu plus près. Vous pouvez facilement changer l'option «r » pour configurer quelle ligne « De » est présentée au client mail quand le mail est récupéré à l'autre bout. C'est parfois étonnamment difficile d'y arriver avec d'autres clients en ligne de commande. | Regardons-le d'un peu plus près. Vous pouvez facilement changer l'option « r » pour configurer quelle ligne « De » est présentée au client mail quand le mail est récupéré à l'autre bout. C'est parfois étonnamment difficile d'y arriver avec d'autres clients en ligne de commande. |
| |
**The other options hopefully make sense too. The “s” option allows you to edit your email’s subject whereas the “a” option is the filename of the attachment that you are adding from your local filesystem. One handy hint is to compress the file if the plain text arrives with extra, unwanted carriage returns. Incidentally you should also ensure that you’re using the full path to the attached file if you have issues. | **The other options hopefully make sense too. The “s” option allows you to edit your email’s subject whereas the “a” option is the filename of the attachment that you are adding from your local filesystem. One handy hint is to compress the file if the plain text arrives with extra, unwanted carriage returns. Incidentally you should also ensure that you’re using the full path to the attached file if you have issues. |
I’m pointing this out because you could also insert a text file into the body by replacing “< /dev/null” with something like this example “< /home/chrisbinnie/bodytext”. The file “bodytext” is the email’s body in this case.** | I’m pointing this out because you could also insert a text file into the body by replacing “< /dev/null” with something like this example “< /home/chrisbinnie/bodytext”. The file “bodytext” is the email’s body in this case.** |
| |
De même, les autres options sont compréhensibles, je l'espère. L'option « s » vous permet d'éditer le sujet de votre mail alors que l'option « a » est le nom du fichier que vous ajoutez en pièce jointe, à partir de votre système de fichiers local. Un conseil pratique est de compresser le fichier en si le texte brut arrive avec des retours chariot supplémentaires non-désirés. , Incidemment, vous pourriez aussi vous assurer que vous utilisez le chemin complet vers le fichier, si vous avez des problèmes. | De même, les autres options sont compréhensibles, je l'espère. L'option « s » vous permet d'éditer le sujet de votre mail alors que l'option « a » est le nom du fichier que vous ajoutez en pièce jointe, à partir de votre système de fichiers local. Un conseil pratique est de compresser le fichier si le texte brut arrive avec des retours chariot supplémentaires non désirés. D'ailleurs, vous devez aussi vous assurer que vous utilisez le chemin complet vers le fichier joint, si vous avez des problèmes. |
| |
Prenez soin de noter que l'exemple de ligne de commande ci-dessus n'est pas tout-à-fait complet et peut , soit être terminé avec succès par « < /dev/null » à la fin de celui-ci, ou autrement, en tapant un point puis en appuyant sur Entrée. Ceci sert à remplir le corps du mail avec du contenu, même si le contenu est inexistant et qu'effectivement, c'est un mail vide. | Prenez bonne note que l'exemple de ligne de commande ci-dessus n'est pas tout-à-fait complet et peut, soit être terminé avec succès par « < /dev/null » ajouté à la fin de celui-ci, ou, autrement, en tapant un point puis en appuyant sur Entrée. Ceci sert à remplir le corps du mail avec du contenu, même si le contenu est inexistant et qu'effectivement, c'est un mail vide. |
| |
Comparez et opposez l'exemple en ligne de commande du dessus et celui ci-dessous ; ici, notre mail vide n'a pas du tout de corps de texte, à cause du « /dev/null » qu'il contient : | Comparez et différenciez l'exemple en ligne de commande du dessus et celui ci-dessous ; ici, notre mail vide n'a pas du tout de corps de texte, à cause du « /dev/null » qu'il contient : |
| |
mailx r 'mycustomscript@chrisbinnie.tld' s 'Another Subject Line' a '/fullpath/yourfile‘ S 'smtp=remotesmartMTAhost' 'destination@chrisbinnie.tld' < /dev/null | mailx r 'mycustomscript@chrisbinnie.tld' s 'Another Subject Line' a '/fullpath/yourfile‘ S 'smtp=remotesmartMTAhost' 'destination@chrisbinnie.tld' < /dev/null |
| |
Before we stop looking at command-line email, let’s quickly think about an alternative to solving the problem of changing the “from line” or sender name. It’s not too tricky (I’m sure you’ll be glad to read).** | Before we stop looking at command-line email, let’s quickly think about an alternative to solving the problem of changing the “from line” or sender name. It’s not too tricky (I’m sure you’ll be glad to read).** |
| |
| Maintenant, analysez ce scénario pendant une seconde : vous ne voulez pas insérer un fichier complet, mais, plutôt, envoyer un autre texte, directement depuis votre ligne de commande. Vous pouvez aussi faire suivre ce format, maintenant connu, par un écho du texte à travers un « pipe » : |
| |
| echo e “Text content goes here.\n And here.” | mailx r 'script@binnie.tld' s 'Subject Line' a '/fullpath/.bashrc' S 'smtp=localhost' 'chris@binnie.tld' |
| |
| Je n'ai pas encore expliqué que l'option « S » vous permet de choisir un MTA distant, comme « smtp=smtp.mail.com » par exemple, ou une machine locale (comme nous l'avons vu plus haut dans nos exemples en ligne de commande). |
| |
| Notez qu'il est facile d'ajouter plusieurs adresses mail de destinataires (en les séparant simplement avec des espaces). |
| |
| Avant de terminer notre aperçu des mails en ligne de commande, réfléchissons rapidement à une alternative pour résoudre le problème de la modification de la ligne « De » ou du nom de l'expéditeur. Ce n'est pas trop compliqué (je suis sûr que vous serez contents de l'avoir lu). |
| |
**Another command-line email client option is to install “mutt” in case you can’t get your hands on a “mailx” derivative. In order to use it, you have to edit the “.muttrc” file, found in the home directory of the user who is sending the email. Here’s an example: | **Another command-line email client option is to install “mutt” in case you can’t get your hands on a “mailx” derivative. In order to use it, you have to edit the “.muttrc” file, found in the home directory of the user who is sending the email. Here’s an example: |
| |
Personally, I prefer the “mail" command for this task, but, hopefully, you’re now armed sufficiently so that you can choose between the two alternatives above.** | Personally, I prefer the “mail" command for this task, but, hopefully, you’re now armed sufficiently so that you can choose between the two alternatives above.** |
| |
| Une autre option du client de mail en ligne de commande est d'installer « mutt » dans le cas où vous n'arrivez pas à récupérer un dérivé de « mailx ». Pour l'utiliser, vous devez éditer le fichier « .muttrc », que vous trouvez dans le répertoire home de l'utilisateur qui envoie le mail. Voici un exemple : |
| |
| set realname="Alerting Script" set from="script@productionmachine.com" set use_from=yes |
| |
| Dans le texte de « .muttrc » ci-dessus, l'option « realname » devrait être en général le nom d'une personne ; à l'évidence, il peut être utile de le régler - pour mettre un peu d'ordre dans les mails lors de la réception. |
| |
| Il y a beaucoup plus d'informations sur le superbe Mutt (http://dev.mutt.org/trac/wiki/MuttFaq/Header), et il est suffisamment intelligent pour réaliser n'importe quelle action que nous avons couverte avec la commande « mail ». |
| |
| Personnellement, je préfère la commande « mail » pour ce travail, mais, avec un peu de chance, vous voilà maintenant suffisamment armés pour pouvoir choisir entre les deux alternatives vues ci-dessus. |