SSMTP - sortie des jobs cron en dead.letter

Bonjour,

J’ai configuré avec succès un compte gmail dans ssmtp. Il fonctionne bien pour l’envoi manuel ou par scripts de mails.
Par contre pour les jobs en crontab, je n’ai pas le même fonctionnement pour root ou pour un autre utilisateur.

  • Pour root si il y a une sortie std ou err du job en crontab je reçois le contenu dans la boite gmail.
  • Par contre pour mon user non-root (jlp), la sortie du job cron reste dans dead.letter.

Voici ma conf ssmtp
/etc/ssmtp/ssmtp.conf

root=mon_compte@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=
hostname=mon_compte@gmail.com
AuthUser=mon_compte@gmail.com
AuthPass=mon_mot_de_passe
FromLineOverride=YES
UseTLS=YES

/etc/ssmtp/revaliases

# sSMTP aliases
# 
# Format:	local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:mon_compte@gmail.com:smtp.gmail.com:465
jlp:mon_compte@gmail.com:smtp.gmail.com:465

J’ai noté à l’heure de passage du job ceci dans le fichier /var/log/mail.err

Oct 28 09:08:42 dell sSMTP[4954]: RCPT TO:<jlp@> (553 5.1.2 or other punctuation after the recipient's email address. fg2sm6979407wic.6 - gsmtp)

J’ai l’impression que l’erreur “553 5.1.2” est générée car ssmtp ne sait pas à qui envoyer le mail, et du coup ça se retrouve en dead.letter. Et pourtant ça fonctionne avec root.
Il doit y avoir un bout de conf à réaliser pour que la boite mail du user sur le serveur soit “liée” au compte gmail…

A votre avis, que faut-il faire pour que l’envoi automatique fonctionne aussi pour un user non-root ?

Merci.

Salut,

Depuis le compte root, ouvres la table de planification et ajoutes/renseignes ces variables.

[code]# Envoyer les résultats à Paul, sans tenir compte du propriétaire
MAILTO=@gmail.com

LANG=fr_FR.UTF-8

Utiliser /bin/bash pour lancer les commandes, plutôt que le shell par défaut /bin/sh

SHELL=/bin/bash

Plusieurs variables d’environnement sont automatiquement définies par le démon cron(8).

PATH est définie à « /usr/bin:/bin ». HOME, SHELL et PATH peuvent être réaffectées explicitement dans la crontab

contrairement à LOGNAME, qui est l’utilisateur ayant lancé la tâche.

HOME=/home/
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin[/code]
Les points à vérifier.

:~$ echo $PATH :~$ echo $SHELL
La prise en compte devrait être immédiate.


Note: [mono]Chaque entrée d’une crontab doit être terminée par un retour à la ligne.
Si la dernière entrée ne se termine pas par un retour à la ligne, cron la considérera (au moins partiellement) cassée.
Un avertissement sera écrit dans le journal système (« syslog »).[/mono]

Merci pour l’info.

Je vais tester ça.
Pour être plus précis, ce n’est pas la crontab d’un user standard, mais son anacrontab.
Je vais faire la modif dans son fichier anacrontab.

A+

[mono]anacron: /etc/anacrontab
anacron: /usr/share/man/man5/anacrontab.5.gz
systemd-cron: /etc/anacrontab[/mono]

Je ne pense pas que cela soit une bonne idée, après lecture des : [mono]$ man anacron[/mono] et [mono]$ man 5 crontab[/mono].

Bonjour,

Je confirme que ça fonctionne nickel, les sorties standard et des erreurs des scripts lancés en anacrontab du user jlp sont bien envoyé par mail.
Pour info, j’avais créé un environnement anacrontab user. Avec une arborescence ~/.anacrontab/
(voir sur le net “anacrontab in user mode” ou “anacrontab non user root”)

Merci.

A+