Comment puis-je faire en sorte que crontab m'envoie par e-mail le résultat de ses travaux? J'ai au- [email protected]
dessus des emplois, mais ça ne marche pas.
Je sais que je dois utiliser quelque chose comme Postfix ou Sendmail, mais je ne peux pas trouver comment y parvenir. J'ai cherché et cherché un guide simple sur la configuration de Postfix, mais ils sont tous incroyablement compliqués et s'attendent à ce que vous configuriez un serveur entier pour envoyer et recevoir des emails et connaître tous les termes (comme, qu'est-ce qu'un nom de domaine? pour les emails sortants?).
Tout ce que je veux faire, c'est que crontab m'envoie un e-mail. Pourquoi est-ce si difficile??
Information additionnelle:
Mon fichier crontab ressemble à ceci:
[email protected]
1 0 * * * ~/Desktop/toskymesh.sh
59 6 * * * ~/Desktop/tooptus.sh
0 3 * * * snapraid sync
Plus d'infos supplémentaires:
La sortie de ps -ef | grep '[s]endmail'
root 6840 1370 0 10:26 ? 00:00:00 sendmail: MTA: accepting connections
Je sais que cron fonctionne, mais je teste la commande mail avec de echo Test | mail -s Test [email protected]
toute façon.
sendmail setup
. Bonne chance!mail
. Dans l'un d'eux, il est écrit ceci:Diagnostic-Code: SMTP; 553 5.7.1 [BL21] Connections will not be accepted from [MyIPRedacted], because the ip is in Spamhaus's list; see http://postmaster.yahoo.com/550-bl23.html
Cela signifie-t-il que la commande fonctionne mais que Yahoo bloque le courrier?http://webmasters.stackexchange.com
? Ils peuvent probablement vous aider, mieux ou encore,chat.stackexchange.com/rooms/524/webmasters
là où apparemment toutes les questions sont les bienvenues (hm… vous aurez peut-être besoin de plus de représentants pour entrer, êtes-vous sur un autre site stackexchange?) Bonne chance.Réponses:
À la fin j'ai utilisé
sSMTP
. C'est beaucoup, beaucoup plus simple que l'unPostfix
ou l' autresendmail
et fait le travail à merveille.Pour référence future, voici comment utiliser sSMTP avec Yahoo Mail (ne vous inquiétez pas, c'est beaucoup moins complexe qu'il n'y paraît):
Utilisez Synaptic pour télécharger ssmtp. Sinon, vous pouvez courir
sudo apt-get install ssmtp
.Ouvrez le fichier de configuration à /etc/ssmtp/ssmtp.conf.
Faites en sorte que la configuration ressemble à ceci:
Créez le fichier cert.pem avec OpenSSL. J'ai utilisé la commande
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 9999 -nodes
(plus d'infos ici ). Vous pouvez coller le fichier n'importe où, mais je l'ai simplement jeté dans ~ /. Où que vous leTLS_CA_File=
mettiez , assurez-vous de pointer la ligne du fichier ssmtp.conf au bon endroit.Ouvrez le fichier
/etc/ssmtp/revaliases
et ajoutez la ligne[yourPCUsername]:[[email protected]]:smtp.mail.yahoo.com:587
. Si vous utilisez root, je pense que vous devez ajouter une autre ligne en remplaçant votre nom par «root».Ça y est, vous êtes prêt à partir! Pour tester, le moyen le plus simple (IMO) consiste à créer un fichier contenant les éléments suivants:
sendmail -V
- il devrait indiquer 'sSMTP'.cat fileWithEmailInIt.txt | sendmail -i -t
, attendez quelques secondes (10-30) et vérifiez votre courrier électronique!Évidemment, remplacez
[[email protected]]
par votre email (sans les crochets) et[yourRealYahooPassword]
par votre mot de passe Yahoo Mail (encore une fois, sans les crochets).Remarque supplémentaire: si vous rencontrez des problèmes avec Gmail, essayez l'option 1 de cette réponse (merci à Ben Creasy pour ces informations).
la source
hostname
comme indiqué). Cette réponse suggère que vous pouvez utiliser des certificats de serveur par défaut, mais j'ai constaté que je n'avais pas besoin d'uneTLS_CA_File=
ligne pour l'envoi via GMail.Installez Postfix. C'est plus compliqué que la plupart des autres packages mais ce n'est toujours pas compliqué .
Sélectionnez "Site Internet" puis acceptez toutes les valeurs par défaut. Ensuite, nous devons simplement arrêter les connexions extérieures, en transformant cela en " client nul ". Exécuter:
sudoedit /etc/postfix/main.cf
et trouver leinet_interfaces
paramètre (vers la fin) et le changer enloopback-only
, comme suit:Et enfin, redémarrez Postfix avec
sudo /etc/init.d/postfix restart
(le rechargement ne fera pas).Vous avez maintenant une installation Postfix qui ne relayera pas le courrier électronique des machines extérieures, elle acceptera uniquement les connexions sur 127.0.0.1 (et :: 1 pour IPv6).
Sur une note séparée, vos lignes cron ne fonctionnent probablement pas car vous utilisez des chemins non relatifs et des chemins avec des substitutions de Bash dans.
sh
Ne comprend pas~
et il se peut qu’il ne soit pas correctementPATH
défini. Alors remplacez-les par (je devine juste les chemins réels):Et si vos scripts doivent être exécutés à partir d'un répertoire spécifique, assurez-vous de les placer
cd
dans le bon répertoire. Ne présumez pas que cecron
sera au bon endroit car ce ne sera probablement pas.la source
~/Desktop/
.inet_interfaces = localhost
. loopback-only m'a donnépostfix: fatal: config variable inet_interfaces: host not found: loopback-only
J'ai eu beaucoup de chance avec exim4.
(alpine est juste le client de messagerie que j'aime utiliser)
Après cela, j'ai couru
et suivi à travers les invites. Cette page: https://help.ubuntu.com/community/Exim4 était également très utile. Il m'a fallu environ 10 minutes pour le faire fonctionner.
la source
De la page de manuel sSMTP: "Il ne fait pas de crénelage, ce qui doit être fait soit dans l'agent utilisateur, soit dans le mailhub. Il n'honore pas non plus .forwards, ce qui doit être fait sur l'hôte récepteur. Il ne livre surtout pas les pipelines. "
Donc, si vous souhaitez recevoir tous les messages envoyés à root sur votre courrier électronique externe, il est déconseillé d’utiliser sSMTP, car il ne prend pas en charge les alias.
Au lieu de cela, vous pouvez utiliser postfix. C'est encore très simple. Voici comment l'utiliser avec gmail comme smtp pour l'envoi de messages:
Type général de configuration du courrier: système satellite
Nom de messagerie système: nom complet préféré du serveur de messagerie, par exemple, mail.example.com.
Hôte relais SMTP (vierge pour aucun): [smtp.gmail.com]: 587
Ajoutez à /etc/postfix/main.cf:
Créez / etc / postfix / sasl / sasl_passwd
Ensuite:
Éditez / etc / aliases et ajoutez:
Enfin, lancez:
Maintenant, vous pouvez tester si la redirection fonctionne:
J'espère que ça aide.
la source