GNU/Linux >> Tutoriels Linux >  >> Fedora

Fedora Linux :J'ai installé Sendmail mais je ne reçois plus de notifications par e-mail lorsque je me connecte ?

J'ai installé le sendmail package sur Fedora 23. Alors maintenant j'ai /usr/sbin/sendmail ce genre de travaux. Sauf que maintenant, je ne reçois pas de notifications par e-mail dans le shell bash. Pourquoi pas ?

EDIT :Je pensais que la notification bash était cassée (et fonctionnait avec esmtp, comme décrit ci-dessous). Cependant, la notification lors de la connexion était plus facile à tester, donc j'ai bien peur d'avoir confondu le problème.

La notification à la connexion n'a pas fonctionné, mais je pense que c'est en fait la responsabilité de pam_mail, pas de bash. Je pensais que les notifications à la connexion fonctionnaient avec esmtp, mais je remarque grep -r pam_mail /etc/pam.d n'affiche aucun résultat. Malheureusement, l'activation de pam_mail conformément à la documentation ne semble pas faire rien , même s'il est censé toujours imprimer, par ex. "Pas de courrier". Il a également un debug option, mais cela n'a rien affiché à l'utilisateur ni à syslog (alias le journal).

mail alan; sleep 60 fait générer une notification.

Cependant, si je mail alan; logout alors je ne reçois aucune notification lorsque je me reconnecte. Même après sleep 60 . Évidemment, ce n'est pas souhaitable.

Il semble que bash suppose pam_mail travaille. Donc, si le courrier est disponible au moment de la connexion, alors bash s'assure pas notifier une deuxième fois pour le même courrier.

Donc le vrai problème est que pam_mail ne fonctionne pas.

Cette réalisation a nécessité des tests poussés car je suis bête.

Tests exhaustifs

Si j'mail alan , puis ouvrez une deuxième connexion et exécutez sleep 60 , je reçois une notification en une seule connexion (uniquement). Ce n'est évidemment pas un problème avec un script de déconnexion, car mail alan; sleep 60 fonctionne même si j'ouvre une deuxième connexion et que je la déconnecte immédiatement.

Tester avec l'envoi d'e-mails à partir d'un deuxième utilisateur suggère que les notifications ne fonctionnent pas si vous n'êtes pas connecté lorsque l'e-mail est envoyé.

Une fois que bash a affiché une notification, il ne l'affiche plus, par exemple. après un second sleep 60 .

Je pensais qu'il s'agissait peut-être de comparer l'heure d'accès du fichier à l'heure de modification, mais cela ne semble pas être le cas.

$ stat $MAIL
Fichier :'/var/spool/mail/alan'
Taille :859 blocs :16 bloc d'E/S :4096 fichier normal
Périphérique :fd00h/64768d Inode :655929 Liens :1
Accès :(0660/-rw-rw—-) Uid :( 1000/ alan) Gid :( 12/ mail)
Contexte :unconfined_u:object_r:mail_spool_t:s0
Accès :2016-05-12 22:17:28.907175410 +0100
Modifier :2016-05-12 22:18:03.177899774 +0100
Modifier :2016-05-12 22:18:03.177899774 +0100
Naissance :–

Variables d'environnement

Exemple ci-dessous. C'est après que j'ai envoyé un mail test à moi-même. Ainsi, lorsque je me connecte, j'attends une notification. Si je continue à exécuter mail , il me montre le courrier de test comme prévu.

[[email protected] ~]$ ssh alan-nuc
Last login: Thu May 12 20:50:54 2016 from 172.16.9.242

[[email protected] ~]$ echo $MAIL
/var/spool/mail/alan
[[email protected] ~]$ ls -l $MAIL
-rw-rw----. 1 alan mail 850 May 12 20:56 /var/spool/mail/alan
[[email protected] ~]$ echo $MAILCHECK
60
[[email protected] ~]$ echo $MAILPATH

[[email protected] ~]$ 

Installer sendmail

Fedora Workstation est livré avec un /bin/sendmail qui ne fonctionne pas (paquet esmtp).

Il peut être configuré en installant maildrop et en définissant mda="maildrop -d %T" in /etc/esmtprc . Cela permet le courrier d'un utilisateur à lui-même et de root à n'importe qui. Avec esmtp et maildrop, bash affiche les notifications de courrier comme prévu .

Connexe :Pourquoi les notifications Facebook émettent-elles toujours des sons même après avoir désactivé « Émettre un son à chaque nouvelle notification reçue » ?

Cependant esmtp ne fonctionne pas pour les mails du cron démon. esmtp enregistre "autorisation refusée" lors de la tentative de lecture du message à livrer. https://bugzilla.redhat.com/show_bug.cgi?id=1303305 Plus précisément, lorsque vous essayez de rouvrir /dev/stdin , qui est généralement censé réussir (équivalent à dup() ). Donc, c'est probablement SELinux, mais il n'y a pas de refus SELinux (AVC) enregistré, c'est probablement dontaudit .

L'installation de l'ancien package sendmail remplace la commande sendmail fournie par esmtp. Je pensais que ce serait un moyen simple de contourner les nouveaux bugs, mais maintenant j'ai encore un autre bug :(.

Réponse acceptée :

La configuration du rapport sur l'état du courrier au moment de la connexion est gérée par pam_mail . Vérifiez le fichier correspondant (par exemple /etc/pam.d/ssh ) et assurez-vous que vous avez une ligne qui ressemble à ceci :

session    optional     pam_mail.so standard noenv

Peut être différent selon votre distribution. Consultez la documentation de votre distribution pour voir comment elle doit être configurée.


Fedora
  1. Téléchargement Fedora

  2. Comment installer VLC sur Fedora Linux

  3. Comment installer Zoom dans Fedora Linux 35

  4. Service d'exploitation Linux "sendmail"

  5. Récupère le journal des e-mails envoyés avec mail() à partir de PHP (sendmail ?)

Installer/Mettre à jour PHP 8.1 sur Fedora Linux 35

Comment installer PHP 8.1 sur Fedora 36 Linux

Installer Apache Maven sur Fedora Linux 35

Installer CMake sur Fedora Linux 35

Comment installer Python 3.10 sur Fedora Linux

Comment installer Webmin sur Fedora Linux