Aller au contenu

Script Envoi Mail Avec Nail


mikael2235

Messages recommandés

Bonjour à tous,

J'ai fait un script pour envoyer un mail en utilisant Nail.


SynologyDs412> vi testmail

#!/bin/sh

echo "testing" | nail -s "subject" mon_adresse@fai.fr

Le script se déroule bien mais pas d'erreur, et je ne reçois pas de mail. Quand je mets directement cette ligne dans le shell, et que je valide, je le reçois bien:

echo "testing" | nail -s "subject" mon_adresse@fai.fr

Savez vous d'ou cela vient ?

Lien vers le commentaire
Partager sur d’autres sites

Comment (dans quel contexte) est invoqué le script?

Dans tous les cas, mieux vaut spécifier expliciter explicitement le PATH dans ce dernier:

PATH=/bin:/usr/bin:/opt/bin 

(rien ne te garantit que le PATH sera celui necessaire lorsque le script sera invoqué par une obscure commande lancée dans la crontab ...

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

As-tu bien mis a jour le fichier /opt/etc/nail.rc ?

Il faut ajouter les lignes suivantes à la fin :


set smtp=smtp.gmail.com:587

set smtp-use-starttls

set smtp-auth-user=[username]@gmail.com

set ssl-verify=ignore

set smtp-auth-password=[password]

(bien évidemment à adapter en fonction du serveur smtp utilisé ....)

Modifié par Kramlech
Lien vers le commentaire
Partager sur d’autres sites

Etrangement, mon script de 2 lignes à bien voulu fonctionner ce matin.

Par contre, quand je veux donc insérer cette même ligne dans mon script xpl-mysql-logger, j'ai plein d'erreur.

Voilà ce que j'ai ajouté :


	    #Envoi de mail d'alerte avec NAIL

			    if ( (($id_capteur == 49) || ($id_capteur == 50)) ) {

					    echo "testing bla bla bla" | nail -s "subject bla bla bla" monmail@fai.fr

			    }

			    if ( (($id_capteur == 10)) ) {

					    echo "testing bla bla bla" | nail -s "subject bla bla bla" monmail@fai.fr

			    }

Et voilà les erreurs que j'ai :

String found where operator expected at /opt/bin/xpl-mysql-logger line 315, near "echo "testing bla bla bla""

	    (Do you need to predeclare echo?)

Bareword found where operator expected at /opt/bin/xpl-mysql-logger line 315, near ""subject bla bla bla" monmail"

	    (Missing operator before monmail?)

Array found where operator expected at /opt/bin/xpl-mysql-logger line 315, at end of line

	    (Missing operator before ?)

String found where operator expected at /opt/bin/xpl-mysql-logger line 319, near "echo "testing bla bla bla""

	    (Do you need to predeclare echo?)

Bareword found where operator expected at /opt/bin/xpl-mysql-logger line 319, near ""subject bla bla bla" monmail"

	    (Missing operator before monmail?)

Array found where operator expected at /opt/bin/xpl-mysql-logger line 319, at end of line

	    (Missing operator before ?)

Global symbol "$id_capteur" requires explicit package name at /opt/bin/xpl-mysql-logger line 314.

Global symbol "$id_capteur" requires explicit package name at /opt/bin/xpl-mysql-logger line 314.

syntax error at /opt/bin/xpl-mysql-logger line 315, near "echo "testing bla bla bla""

Global symbol "@fai" requires explicit package name at /opt/bin/xpl-mysql-logger line 315.

Global symbol "$id_capteur" requires explicit package name at /opt/bin/xpl-mysql-logger line 318.

syntax error at /opt/bin/xpl-mysql-logger line 319, near "echo "testing bla bla bla""

Global symbol "@fai" requires explicit package name at /opt/bin/xpl-mysql-logger line 319.

Execution of /opt/bin/xpl-mysql-logger aborted due to compilation errors.

Lien vers le commentaire
Partager sur d’autres sites

Salut Mickael,

je suppose que ton script est en perl vu les erreurs.

L'appel de commandes shell dans un script perl doit etre fait soit par la commande system(), avec des ``

le symbole "@" est aussi un symbole perl, il doit donc être précédé d'un antisah ""

je te conseille aussi de mettre les chemins complets pour les appels à nail


#Envoi de mail d'alerte avec NAIL

if ( (($id_capteur == 49) || ($id_capteur == 50)) ) {

  `echo "testing bla bla bla" | /opt/bin/nail -s "subject bla bla bla" monmail\@fai.fr`;

}

if ( (($id_capteur == 10)) ) {

  `echo "testing bla bla bla" | /opt/bin/nail -s "subject bla bla bla" monmail\@fai.fr`;

}

Modifié par loli71
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.