Comment puis-je envoyer un courriel HTML en utilisant un shell script ?
Pouvez-vous répondre à la deuxième partie Je ne sais pas comment l'utiliser ?
Comment puis-je envoyer un courriel HTML en utilisant un shell script ?
Vous devez d'abord composer le message. Le strict minimum est composé de ces deux en-têtes :
MIME-Version: 1.0
Content-Type: text/html
... et le corps du message approprié :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
Une fois que vous l'avez, vous pouvez transmettre les informations appropriées à la fonction courrier électronique commandement :
body = '...'
echo $body | mail \
-a "From: me@example.com" \
-a "MIME-Version: 1.0" \
-a "Content-Type: text/html" \
-s "This is the subject" \
you@example.com
Il s'agit d'un exemple simplifié à l'extrême, puisque vous devez également tenir compte des jeux de caractères, des codages, de la longueur maximale des lignes... Mais c'est en gros l'idée.
Alternativement, vous pouvez écrire votre script en Perl ou PHP plutôt qu'en simple shell.
Un shell script est essentiellement un fichier texte avec des terminaisons de ligne Unix qui commence par une ligne appelée shebang qui indique à l'interpréteur de commandes à quel interpréteur il doit passer le fichier, suivre quelques commandes dans le langage que l'interpréteur comprend et qui a la permission d'exécution (dans Unix c'est un attribut de fichier). Par exemple, disons que vous enregistrez le fichier suivant en tant que hello-world
:
#!/bin/sh
echo Hello, world!
Ensuite, vous attribuez une autorisation d'exécution :
chmod +x hello-world
Et vous pouvez enfin l'exécuter :
./hello-world
Peu importe, ça n'a rien à voir avec la question initiale. Vous devriez vous familiariser avec les scripts shell de base avant d'effectuer des tâches avancées avec eux. Voici quelques liens sur bash un coquillage populaire :
http://www.gnu.org/software/bash/manual/html_node/index.html
Je ne suis pas sûr de votre question... Etes-vous familier avec les scripts shell ? Où se trouvent les informations que vous voulez envoyer ?
Non je n'ai jamais utilisé le shell script ... c'est juste au moment où j'ai besoin de l'utiliser dans le cadre du développement de mon application ...
Les balises incluent 'sendmail', voici donc une solution qui l'utilise :
(
echo "From: me@xyz.com "
echo "To: them@xyz.com "
echo "MIME-Version: 1.0"
echo "Content-Type: multipart/alternative; "
echo ' boundary="some.unique.value.ABC123/server.xyz.com"'
echo "Subject: Test HTML e-mail."
echo ""
echo "This is a MIME-encapsulated message"
echo ""
echo "--some.unique.value.ABC123/server.xyz.com"
echo "Content-Type: text/html"
echo ""
echo "<html>
<head>
<title>HTML E-mail</title>
</head>
<body>
<a href='http://www.google.com'>Click Here</a>
</body>
</html>"
echo "------some.unique.value.ABC123/server.xyz.com--"
) | sendmail -t
Un wrapper pour sendmail peut faciliter ce travail, par exemple, mutt :
mutt -e 'set content_type="text/html"' me@mydomain.com -s "subject" < message.html
Le paramètre "--some.unique.value...", qui correspond à l'option boundary="some.unique.value..."
dans les en-têtes, est le moyen utilisé par MIME pour séparer les messages multiparties. Lorsqu'il voit cela, il sait que ce qui suit est une nouvelle partie, et qu'il doit retourner à l'analyse des en-têtes. Cet exemple est un peu plus compliqué qu'il ne devrait l'être, car les parties multiples ne sont pas strictement nécessaires, mais ce n'est pas une mauvaise idée si vous envoyez du courrier HTML.
Cette solution est vraiment simple et fonctionne pourtant sans problème. Elle mérite vraiment plus de votes positifs.
A bien fonctionné sur MacOSX 10.9. très astucieux. beau travail. des astuces pour ajouter des pièces jointes ?
@Kevin Zhu : Cela fonctionne, mais je doute que la citation soit conforme à votre intention. Le premier guillemet double après le -e ferme le guillemet double qui le précède. Je pense que c'est ce que vous vouliez faire : "$(echo -e 'This is Subject\nContent-Type: text/html')"
Une autre option est le script sendEmail script. http://caspian.dotconf.net/menu/Software/SendEmail/ Il vous permet également de définir le type de message comme étant du type html et d'inclure un fichier dans le corps du message. Voir le lien pour plus de détails.
Shell envoyer email html - The UNIX and Linux Forums
http://www.unix.com/shell-programming-scripting/80973-shell-send-html-email.html
Envoi d'un courriel à partir d'un script - Shell Scripting
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Qu'est-ce qui ne va pas dans la réponse qui a été donnée, puisque la commande mail est votre meilleure option à partir d'un script de shell ? Que cherchez-vous, ou en quoi sa réponse était-elle défaillante, pour que vous décidiez de mettre une prime dessus ?
0 votes
Parce que je n'ai pas bien compris la réponse. Mais toutes les autres personnes sont capables de comprendre, mais je ne suis pas capable de le faire.....
11 votes
Alors dites-le. Si vous ne comprenez pas, ne restez pas silencieux. Demandez une clarification de la réponse.
0 votes
Qu'est-ce que vous comprenez exactement et qu'est-ce que vous ne comprenez pas, modifiez cette question avec ces informations.
0 votes
Shell envoyer email html - The UNIX and Linux Forums unix.com/shell-programming-scripting/ Envoi d'un courriel à partir d'un script - Shell Scripting daniweb.com/forums/thread15280.html
0 votes
Vous avez déjà de très bonnes réponses à cette question. Je n'ai aucune idée de la façon dont je pourrais donner une réponse qui soit meilleure pour vous.
3 votes
Les lecteurs des réponses à cette question doivent faire attention : il existe plusieurs programmes différents appelés
mail
par exempleheirloom-mailx
etbsd-mailx
sur Debian jessie. Si unmail
à partir d'une réponse ici ne fonctionne pas pour vous, vous utilisez probablement la mauvaisemail
. Consultez le gestionnaire de paquets de votre distribution pour installer le bon paquetage, et utilisez le nom spécifique de ce binaire (par ex.bsd-mailx
sur Debian) pour résoudre ce problème. Plus de détails à ce sujet ici : heirloom.sourceforge.net/mailx_history.html